@sleighmaster/bmad 1.5.3 → 1.5.5
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/data/_bmad/_config/bmad-help.csv +1 -0
- package/data/_bmad/_config/workflow-manifest.csv +1 -0
- package/data/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +540 -413
- package/data/_bmad/bmm/workflows/4-implementation/create-story/template.md +8 -0
- package/data/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +5 -0
- package/data/_bmad/bmm/workflows/github-setup/instructions.xml +52 -1
- package/data/_bmad/bmm/workflows/onboarding/onboarding-template.md +167 -0
- package/data/_bmad/bmm/workflows/onboarding/workflow.md +226 -0
- package/data/_bmad/hooks/.gitattributes +5 -0
- package/data/_bmad/hooks/install-hooks.ps1 +89 -86
- package/data/claude-commands/bmad-bmm-onboarding.md +6 -0
- package/dist/services/installer.d.ts.map +1 -1
- package/dist/services/installer.js +3 -1
- package/dist/services/installer.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,6 +38,14 @@ so that {{benefit}}.
|
|
|
38
38
|
- Source tree components to touch
|
|
39
39
|
- Testing standards summary
|
|
40
40
|
|
|
41
|
+
### Retrospective Learnings
|
|
42
|
+
|
|
43
|
+
<!-- Auto-populated from previous epic retrospectives when available -->
|
|
44
|
+
|
|
45
|
+
- Relevant action items from previous retrospectives
|
|
46
|
+
- Recurring code review patterns to watch for
|
|
47
|
+
- Team agreements applicable to this story
|
|
48
|
+
|
|
41
49
|
### Project Structure Notes
|
|
42
50
|
|
|
43
51
|
- Alignment with unified project structure (paths, modules, naming)
|
|
@@ -15,6 +15,7 @@ architecture_artifacts: "{config_source}:architecture_artifacts"
|
|
|
15
15
|
implementation_artifacts: "{config_source}:implementation_artifacts"
|
|
16
16
|
output_folder: "{implementation_artifacts}"
|
|
17
17
|
story_dir: "{stories_artifacts}"
|
|
18
|
+
retrospectives_folder: "{implementation_artifacts}/retrospectives"
|
|
18
19
|
|
|
19
20
|
# Workflow components
|
|
20
21
|
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story"
|
|
@@ -61,5 +62,9 @@ input_file_patterns:
|
|
|
61
62
|
whole: "{epics_artifacts}/*epic*.md"
|
|
62
63
|
sharded: "{epics_artifacts}/*epic*/*.md"
|
|
63
64
|
load_strategy: "SELECTIVE_LOAD" # Only load needed epic
|
|
65
|
+
retrospective:
|
|
66
|
+
description: "Previous epic retrospectives for lessons learned and action items"
|
|
67
|
+
pattern: "{retrospectives_folder}/epic-*-retro-*.md"
|
|
68
|
+
load_strategy: "SELECTIVE_LOAD" # Load most recent retrospective(s)
|
|
64
69
|
|
|
65
70
|
standalone: true
|
|
@@ -175,7 +175,57 @@
|
|
|
175
175
|
</check>
|
|
176
176
|
</step>
|
|
177
177
|
|
|
178
|
-
<step n="6" goal="
|
|
178
|
+
<step n="6" goal="Git Hooks 설치">
|
|
179
|
+
<critical>🔧 GIT HOOKS - master/main 브랜치 보호 hook 설치</critical>
|
|
180
|
+
|
|
181
|
+
<action>_bmad/hooks/ 디렉토리 확인</action>
|
|
182
|
+
|
|
183
|
+
<check if="_bmad/hooks/ 디렉토리 존재">
|
|
184
|
+
<output>📋 **Git Hooks 설치**
|
|
185
|
+
|
|
186
|
+
_bmad/hooks/ 에서 다음 hook을 .git/hooks/ 에 설치합니다:
|
|
187
|
+
- pre-commit: master/main 브랜치 직접 커밋 차단
|
|
188
|
+
- commit-msg: Conventional Commits 형식 검증
|
|
189
|
+
- pre-push: master/main 직접 푸시 차단 + CHANGELOG 검증
|
|
190
|
+
- post-merge: 삭제된 원격 브랜치 자동 정리
|
|
191
|
+
</output>
|
|
192
|
+
|
|
193
|
+
<ask>Git hooks를 설치하시겠습니까? [y/n]</ask>
|
|
194
|
+
|
|
195
|
+
<check if="user confirms">
|
|
196
|
+
<action>.git/hooks/ 디렉토리 생성 (없는 경우)</action>
|
|
197
|
+
<action>_bmad/hooks/ 내 hook 파일(pre-commit, commit-msg, pre-push, post-merge)을 .git/hooks/ 에 복사
|
|
198
|
+
- .ps1, .sh, .sample 파일은 제외
|
|
199
|
+
- 기존 hook이 있고 BMad6GitHub hook이 아닌 경우 .backup으로 백업
|
|
200
|
+
- 복사 시 CRLF를 LF로 변환 (bash 스크립트 호환성)
|
|
201
|
+
</action>
|
|
202
|
+
<action>설치된 hook 파일 목록 확인: ls -la .git/hooks/ (sample 제외)</action>
|
|
203
|
+
<output>✅ Git Hooks 설치 완료!
|
|
204
|
+
|
|
205
|
+
설치된 Hook:
|
|
206
|
+
- pre-commit: master 브랜치 직접 커밋 차단
|
|
207
|
+
- commit-msg: Conventional Commits 형식 검증
|
|
208
|
+
- pre-push: master 브랜치 직접 푸시 차단
|
|
209
|
+
- post-merge: 삭제된 원격 브랜치 자동 정리
|
|
210
|
+
</output>
|
|
211
|
+
</check>
|
|
212
|
+
|
|
213
|
+
<check if="user cancels">
|
|
214
|
+
<output>ℹ️ Git Hooks 설치 건너뜀
|
|
215
|
+
|
|
216
|
+
나중에 설치하려면:
|
|
217
|
+
- CLI: `npx @sleighmaster/bmad update` (hook 설치 선택)
|
|
218
|
+
- 수동: `_bmad/hooks/install-hooks.ps1` 실행 (Windows)
|
|
219
|
+
</output>
|
|
220
|
+
</check>
|
|
221
|
+
</check>
|
|
222
|
+
|
|
223
|
+
<check if="_bmad/hooks/ 디렉토리 없음">
|
|
224
|
+
<output>⚠️ _bmad/hooks/ 디렉토리가 없습니다. BMAD 설치를 먼저 진행해주세요.</output>
|
|
225
|
+
</check>
|
|
226
|
+
</step>
|
|
227
|
+
|
|
228
|
+
<step n="7" goal="설정 완료 및 안내">
|
|
179
229
|
<output>🎉 **GitHub 설정 완료!**
|
|
180
230
|
|
|
181
231
|
**적용된 설정:**
|
|
@@ -184,6 +234,7 @@
|
|
|
184
234
|
✅ .github/ISSUE_TEMPLATE/bug.md - 버그 리포트 템플릿
|
|
185
235
|
✅ .github/PULL_REQUEST_TEMPLATE.md - PR 템플릿
|
|
186
236
|
✅ 저장소 머지 규칙 - Merge Commit만 허용, 브랜치 자동 삭제
|
|
237
|
+
✅ Git Hooks - master/main 브랜치 보호 (설치한 경우)
|
|
187
238
|
ℹ️ .gitignore - BMAD 설치 시 자동 적용됨
|
|
188
239
|
|
|
189
240
|
**다음 단계:**
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# {project_name} — Developer Onboarding Guide
|
|
2
|
+
|
|
3
|
+
> Generated: {date}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Project Overview
|
|
8
|
+
|
|
9
|
+
<!-- PLACEHOLDER: project_overview -->
|
|
10
|
+
<!-- Fill with: project name, description/purpose, version, license -->
|
|
11
|
+
<!-- Include a tech stack summary table:
|
|
12
|
+
| Category | Technology |
|
|
13
|
+
|----------|-----------|
|
|
14
|
+
| Language | ... |
|
|
15
|
+
| Framework | ... |
|
|
16
|
+
| Database | ... |
|
|
17
|
+
| Test Framework | ... |
|
|
18
|
+
| Build Tool | ... |
|
|
19
|
+
-->
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Project Structure
|
|
24
|
+
|
|
25
|
+
<!-- PLACEHOLDER: project_structure -->
|
|
26
|
+
<!-- Fill with: 2-level directory tree with descriptions -->
|
|
27
|
+
<!-- Example format:
|
|
28
|
+
```
|
|
29
|
+
project-root/
|
|
30
|
+
├── src/ — Source code
|
|
31
|
+
├── tests/ — Test suites
|
|
32
|
+
└── docs/ — Documentation
|
|
33
|
+
```
|
|
34
|
+
-->
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 3. Development Environment Setup
|
|
39
|
+
|
|
40
|
+
### Prerequisites
|
|
41
|
+
|
|
42
|
+
<!-- PLACEHOLDER: prerequisites -->
|
|
43
|
+
<!-- Fill with: required tools and versions (Node.js, Python, Docker, etc.) -->
|
|
44
|
+
|
|
45
|
+
### Getting Started
|
|
46
|
+
|
|
47
|
+
<!-- PLACEHOLDER: getting_started -->
|
|
48
|
+
<!-- Fill with: step-by-step commands to set up and run the project -->
|
|
49
|
+
<!-- Example format:
|
|
50
|
+
```bash
|
|
51
|
+
# Clone the repository
|
|
52
|
+
git clone <repo-url>
|
|
53
|
+
cd <project-name>
|
|
54
|
+
|
|
55
|
+
# Install dependencies
|
|
56
|
+
npm install
|
|
57
|
+
|
|
58
|
+
# Run development server
|
|
59
|
+
npm run dev
|
|
60
|
+
|
|
61
|
+
# Run tests
|
|
62
|
+
npm test
|
|
63
|
+
```
|
|
64
|
+
-->
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 4. Development Workflow
|
|
69
|
+
|
|
70
|
+
### Git Workflow
|
|
71
|
+
|
|
72
|
+
<!-- PLACEHOLDER: git_workflow -->
|
|
73
|
+
<!-- Fill with: branch strategy, commit conventions, PR process -->
|
|
74
|
+
|
|
75
|
+
### Code Standards
|
|
76
|
+
|
|
77
|
+
<!-- PLACEHOLDER: code_standards -->
|
|
78
|
+
<!-- Fill with: linter/formatter config, key coding rules from CLAUDE.md -->
|
|
79
|
+
|
|
80
|
+
### Testing
|
|
81
|
+
|
|
82
|
+
<!-- PLACEHOLDER: testing -->
|
|
83
|
+
<!-- Fill with: test framework, how to run tests, coverage requirements -->
|
|
84
|
+
|
|
85
|
+
### CI/CD
|
|
86
|
+
|
|
87
|
+
<!-- PLACEHOLDER: cicd -->
|
|
88
|
+
<!-- Fill with: pipeline descriptions, deployment process -->
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 5. Current Project Status
|
|
93
|
+
|
|
94
|
+
### Planning Documents
|
|
95
|
+
|
|
96
|
+
<!-- PLACEHOLDER: planning_documents -->
|
|
97
|
+
<!-- Fill with: list of existing planning artifacts (PRD, Architecture, UX, etc.) with file paths -->
|
|
98
|
+
|
|
99
|
+
### Epic & Story Progress
|
|
100
|
+
|
|
101
|
+
<!-- PLACEHOLDER: epic_story_progress -->
|
|
102
|
+
<!-- Fill with: sprint status summary — epic/story counts, completion rates, current focus -->
|
|
103
|
+
<!-- If no epics exist, note that the project is in pre-implementation or uses a different tracking method -->
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. BMAD Workflow Guide
|
|
108
|
+
|
|
109
|
+
<!-- PLACEHOLDER: bmad_section -->
|
|
110
|
+
<!-- If BMAD is not installed, replace this entire section with a note that BMAD is not configured for this project -->
|
|
111
|
+
|
|
112
|
+
### What is BMAD?
|
|
113
|
+
|
|
114
|
+
<!-- PLACEHOLDER: bmad_intro -->
|
|
115
|
+
<!-- Brief 2-3 sentence explanation of BMAD Method and what it provides -->
|
|
116
|
+
|
|
117
|
+
### Daily Commands (Top 6)
|
|
118
|
+
|
|
119
|
+
<!-- PLACEHOLDER: bmad_daily_commands -->
|
|
120
|
+
<!-- Fill with table:
|
|
121
|
+
| Command | Description |
|
|
122
|
+
|---------|-----------|
|
|
123
|
+
| `/bmad-help` | Get unstuck — shows next steps and answers questions |
|
|
124
|
+
| `/bmad-bmm-quick-dev` | Quick one-off tasks without full planning |
|
|
125
|
+
| `/bmad-bmm-sprint-status` | View current sprint progress |
|
|
126
|
+
| `/bmad-bmm-dev-story` | Execute the next story implementation |
|
|
127
|
+
| `/bmad-bmm-document-project` | Generate project documentation |
|
|
128
|
+
| `/bmad-bmm-onboarding` | Regenerate this onboarding guide |
|
|
129
|
+
-->
|
|
130
|
+
|
|
131
|
+
### Full Workflow Phases
|
|
132
|
+
|
|
133
|
+
<!-- PLACEHOLDER: bmad_workflow_phases -->
|
|
134
|
+
<!-- Fill with the phase-ordered workflow from bmad-help.csv:
|
|
135
|
+
1. Analysis — Brainstorm, Research, Create Brief
|
|
136
|
+
2. Planning — PRD, UX Design
|
|
137
|
+
3. Solutioning — Architecture, Epics & Stories, Readiness Check
|
|
138
|
+
4. Implementation — Sprint Planning, Create Story, Dev Story, Code Review
|
|
139
|
+
-->
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 7. Reference Documents
|
|
144
|
+
|
|
145
|
+
<!-- PLACEHOLDER: reference_documents -->
|
|
146
|
+
<!-- Fill with: links to existing documentation files -->
|
|
147
|
+
<!-- Example format:
|
|
148
|
+
- [Project Overview](./project-overview.md)
|
|
149
|
+
- [Source Tree](./source-tree.md)
|
|
150
|
+
- [Architecture](./architecture.md)
|
|
151
|
+
-->
|
|
152
|
+
<!-- If no documents exist, note that documentation can be generated with `/bmad-bmm-document-project` -->
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 8. Quick Start Checklist
|
|
157
|
+
|
|
158
|
+
<!-- PLACEHOLDER: quick_start_checklist -->
|
|
159
|
+
<!-- Fill with actionable checklist. Example:
|
|
160
|
+
- [ ] Clone repo and install dependencies
|
|
161
|
+
- [ ] Run the project locally
|
|
162
|
+
- [ ] Run the test suite
|
|
163
|
+
- [ ] Read CLAUDE.md for project rules
|
|
164
|
+
- [ ] Check sprint status: `/bmad-bmm-sprint-status`
|
|
165
|
+
- [ ] Review current epic/story assignments
|
|
166
|
+
- [ ] Pick up your first story: `/bmad-bmm-create-story`
|
|
167
|
+
-->
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: onboarding
|
|
3
|
+
description: 'Generate a comprehensive onboarding document for new developers joining this project.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Developer Onboarding Document Generator
|
|
7
|
+
|
|
8
|
+
**Goal:** Automatically scan the project and generate a single, comprehensive onboarding guide for new developers joining the team.
|
|
9
|
+
|
|
10
|
+
**Your Role:** You are a technical writer creating a human-readable onboarding document. Scan project metadata, structure, and configuration — do NOT deep-dive into source code. Produce a clear, actionable guide that helps a new developer get productive quickly.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## INITIALIZATION
|
|
15
|
+
|
|
16
|
+
### Configuration Loading
|
|
17
|
+
|
|
18
|
+
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
19
|
+
|
|
20
|
+
- `project_name`, `user_name`, `communication_language`, `document_output_language`
|
|
21
|
+
- `output_folder`, `planning_artifacts`, `implementation_artifacts`, `epics_artifacts`
|
|
22
|
+
- `date` = current date
|
|
23
|
+
|
|
24
|
+
### Path Variables
|
|
25
|
+
|
|
26
|
+
- `installed_path` = `{project-root}/_bmad/bmm/workflows/onboarding`
|
|
27
|
+
- `template_path` = `{installed_path}/onboarding-template.md`
|
|
28
|
+
- `output_path` = `{output_folder}/onboarding-guide.md`
|
|
29
|
+
- `bmad_config_path` = `{project-root}/_bmad/_config`
|
|
30
|
+
|
|
31
|
+
### Critical Rules
|
|
32
|
+
|
|
33
|
+
- **ALL output text** (section headings, descriptions, explanations) MUST be written in `{document_output_language}`
|
|
34
|
+
- Translate template section titles and placeholder text to `{document_output_language}`
|
|
35
|
+
- If `onboarding-guide.md` already exists at `output_path`, overwrite it (re-run = refresh)
|
|
36
|
+
- Do NOT deep-scan source code files — focus on metadata, config, and structure
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## PHASE 1: PROJECT FUNDAMENTALS
|
|
41
|
+
|
|
42
|
+
### 1.1 Repository Basics
|
|
43
|
+
|
|
44
|
+
Scan and collect:
|
|
45
|
+
|
|
46
|
+
- **README.md** — extract project name, description, purpose (first ~50 lines)
|
|
47
|
+
- **package.json** / **pyproject.toml** / **Cargo.toml** / equivalent — name, version, description, scripts
|
|
48
|
+
- **LICENSE** — license type
|
|
49
|
+
- **Git info** — default branch, remote URL
|
|
50
|
+
|
|
51
|
+
### 1.2 Tech Stack Detection
|
|
52
|
+
|
|
53
|
+
From dependency files (package.json, requirements.txt, go.mod, etc.):
|
|
54
|
+
|
|
55
|
+
- **Languages** — primary language(s) and versions
|
|
56
|
+
- **Frameworks** — web framework, UI library, test framework
|
|
57
|
+
- **Key Dependencies** — database, ORM, auth, API client, etc.
|
|
58
|
+
- **Dev Tools** — linter, formatter, bundler, task runner
|
|
59
|
+
|
|
60
|
+
### 1.3 Project Structure
|
|
61
|
+
|
|
62
|
+
Generate a **2-level directory tree** of the project root with brief descriptions:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
project-root/
|
|
66
|
+
├── src/ — Source code
|
|
67
|
+
├── tests/ — Test suites
|
|
68
|
+
├── docs/ — Documentation
|
|
69
|
+
├── _bmad/ — BMAD Method configuration
|
|
70
|
+
└── ...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 1.4 Development Environment Setup
|
|
74
|
+
|
|
75
|
+
Extract from README, package.json scripts, Makefile, docker-compose, etc.:
|
|
76
|
+
|
|
77
|
+
- **Prerequisites** — Node.js version, Python version, Docker, etc.
|
|
78
|
+
- **Install command** — `npm install`, `pip install`, etc.
|
|
79
|
+
- **Run command** — `npm run dev`, `python manage.py runserver`, etc.
|
|
80
|
+
- **Test command** — `npm test`, `pytest`, etc.
|
|
81
|
+
- **Build command** — if applicable
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## PHASE 2: DEVELOPMENT WORKFLOW
|
|
86
|
+
|
|
87
|
+
### 2.1 Git Workflow
|
|
88
|
+
|
|
89
|
+
Scan for:
|
|
90
|
+
|
|
91
|
+
- **Git hooks** — `.husky/`, `_bmad/hooks/`, `.git/hooks/` — list active hooks and what they do
|
|
92
|
+
- **Branch strategy** — from CONTRIBUTING.md, CLAUDE.md, or PR templates
|
|
93
|
+
- **PR templates** — `.github/pull_request_template.md`
|
|
94
|
+
- **CI/CD** — `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile` — list pipelines and their purpose
|
|
95
|
+
|
|
96
|
+
### 2.2 Code Standards
|
|
97
|
+
|
|
98
|
+
Scan for:
|
|
99
|
+
|
|
100
|
+
- **Linter config** — `.eslintrc`, `ruff.toml`, `.golangci.yml`, etc.
|
|
101
|
+
- **Formatter config** — `.prettierrc`, `black`, `gofmt`, etc.
|
|
102
|
+
- **CLAUDE.md rules** — extract key development rules from CLAUDE.md if it exists
|
|
103
|
+
- **EditorConfig** — `.editorconfig` settings
|
|
104
|
+
|
|
105
|
+
### 2.3 Test Strategy
|
|
106
|
+
|
|
107
|
+
Detect:
|
|
108
|
+
|
|
109
|
+
- **Test framework** — Jest, Vitest, Pytest, Go test, etc.
|
|
110
|
+
- **Test directory** — where tests live
|
|
111
|
+
- **Test run command** — how to execute tests
|
|
112
|
+
- **Coverage** — coverage tool and thresholds if configured
|
|
113
|
+
|
|
114
|
+
### 2.4 Build & Deploy
|
|
115
|
+
|
|
116
|
+
Detect:
|
|
117
|
+
|
|
118
|
+
- **Build system** — webpack, vite, turbo, make, etc.
|
|
119
|
+
- **Build command** — primary build command
|
|
120
|
+
- **Environments** — dev, staging, production indicators
|
|
121
|
+
- **Deployment** — Dockerfile, Vercel config, AWS config, etc.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## PHASE 3: BMAD WORKFLOW (Conditional)
|
|
126
|
+
|
|
127
|
+
> **If `{project-root}/_bmad/` directory does NOT exist, skip this entire phase and note in the output that BMAD is not installed.**
|
|
128
|
+
|
|
129
|
+
### 3.1 BMAD Installation Detection
|
|
130
|
+
|
|
131
|
+
- Confirm `_bmad/` exists
|
|
132
|
+
- Load `_bmad/bmm/config.yaml` if present (already loaded in INIT)
|
|
133
|
+
- Detect installed modules: check for `_bmad/core/`, `_bmad/bmm/`
|
|
134
|
+
|
|
135
|
+
### 3.2 Available Commands
|
|
136
|
+
|
|
137
|
+
Scan `{project-root}/.claude/commands/bmad-*.md`:
|
|
138
|
+
|
|
139
|
+
- List each command with its name and description (from frontmatter)
|
|
140
|
+
- Group by category if possible (analysis, planning, implementation, anytime)
|
|
141
|
+
|
|
142
|
+
### 3.3 Workflow Guide
|
|
143
|
+
|
|
144
|
+
Load `{bmad_config_path}/bmad-help.csv`:
|
|
145
|
+
|
|
146
|
+
- Extract the **phase-ordered workflow sequence** (phase 1 → 2 → 3 → 4)
|
|
147
|
+
- For the `anytime` group, highlight the **top daily-use commands**:
|
|
148
|
+
- `/bmad-help` — Get unstuck
|
|
149
|
+
- `/bmad-bmm-quick-dev` — Quick tasks
|
|
150
|
+
- `/bmad-bmm-sprint-status` — Sprint overview
|
|
151
|
+
- `/bmad-bmm-document-project` — Generate docs
|
|
152
|
+
- `/bmad-bmm-onboarding` — Refresh this guide
|
|
153
|
+
- Create a simple "your first day" command sequence recommendation
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## PHASE 4: PROJECT STATUS
|
|
158
|
+
|
|
159
|
+
### 4.1 Planning Artifacts
|
|
160
|
+
|
|
161
|
+
Check for existence of key documents in `{planning_artifacts}`:
|
|
162
|
+
|
|
163
|
+
- PRD (`*prd*`, `*product-requirements*`)
|
|
164
|
+
- Architecture doc (`*architecture*`, `*arch*`)
|
|
165
|
+
- UX design (`*ux*`, `*design*`)
|
|
166
|
+
- Product brief (`*brief*`)
|
|
167
|
+
- List found documents with relative paths
|
|
168
|
+
|
|
169
|
+
### 4.2 Epic & Story Status
|
|
170
|
+
|
|
171
|
+
If `{epics_artifacts}` exists:
|
|
172
|
+
|
|
173
|
+
- List epic files found (`epic-*.md`)
|
|
174
|
+
- If `sprint-status.yaml` exists in `{implementation_artifacts}`, parse and summarize:
|
|
175
|
+
- Total epics, stories
|
|
176
|
+
- Completion status (done / in-progress / pending counts)
|
|
177
|
+
- Current sprint focus
|
|
178
|
+
|
|
179
|
+
### 4.3 Existing Documentation
|
|
180
|
+
|
|
181
|
+
Check `{output_folder}` for document-project outputs:
|
|
182
|
+
|
|
183
|
+
- `project-overview.md`
|
|
184
|
+
- `source-tree.md`
|
|
185
|
+
- `*-deep-dive.md`
|
|
186
|
+
- Any `index.md` files
|
|
187
|
+
- List found documents as reference links (do NOT duplicate content)
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## PHASE 5: DOCUMENT GENERATION
|
|
192
|
+
|
|
193
|
+
### 5.1 Load Template
|
|
194
|
+
|
|
195
|
+
Read the full template from `{template_path}`.
|
|
196
|
+
|
|
197
|
+
### 5.2 Fill Template
|
|
198
|
+
|
|
199
|
+
Replace all placeholder sections with the data collected in Phases 1-4:
|
|
200
|
+
|
|
201
|
+
- Every `<!-- PLACEHOLDER: ... -->` must be replaced with actual content
|
|
202
|
+
- Remove any placeholder comments that have no data (section stays but shows "Not detected" or equivalent in `{document_output_language}`)
|
|
203
|
+
- Translate ALL fixed text (section titles, labels, descriptions) to `{document_output_language}`
|
|
204
|
+
- Keep code blocks, file paths, and command names in their original form
|
|
205
|
+
|
|
206
|
+
### 5.3 Write Output
|
|
207
|
+
|
|
208
|
+
Save the completed document to `{output_path}`.
|
|
209
|
+
|
|
210
|
+
### 5.4 Completion Summary
|
|
211
|
+
|
|
212
|
+
Output to the user:
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
✅ Onboarding guide generated: {output_path}
|
|
216
|
+
|
|
217
|
+
Sections included:
|
|
218
|
+
- Project Overview
|
|
219
|
+
- Project Structure
|
|
220
|
+
- Dev Environment Setup
|
|
221
|
+
- Development Workflow
|
|
222
|
+
- [BMAD Workflow — if applicable]
|
|
223
|
+
- Project Status
|
|
224
|
+
- Reference Documents
|
|
225
|
+
- Quick Start Checklist
|
|
226
|
+
```
|
|
@@ -1,86 +1,89 @@
|
|
|
1
|
-
<#
|
|
2
|
-
.SYNOPSIS
|
|
3
|
-
BMad6GitHub Git Hooks 설치 스크립트
|
|
4
|
-
.DESCRIPTION
|
|
5
|
-
pre-commit, commit-msg hook을 .git/hooks에 설치합니다.
|
|
6
|
-
.PARAMETER Uninstall
|
|
7
|
-
hook 제거
|
|
8
|
-
.EXAMPLE
|
|
9
|
-
.\install-hooks.ps1
|
|
10
|
-
.\install-hooks.ps1 -Uninstall
|
|
11
|
-
#>
|
|
12
|
-
|
|
13
|
-
param(
|
|
14
|
-
[switch]$Uninstall
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
$ErrorActionPreference = "Stop"
|
|
18
|
-
|
|
19
|
-
# 색상 출력 함수
|
|
20
|
-
function Write-Info { param($msg) Write-Host "[INFO] $msg" -ForegroundColor Cyan }
|
|
21
|
-
function Write-Success { param($msg) Write-Host "[OK] $msg" -ForegroundColor Green }
|
|
22
|
-
function Write-Warn { param($msg) Write-Host "[WARN] $msg" -ForegroundColor Yellow }
|
|
23
|
-
function Write-Err { param($msg) Write-Host "[ERROR] $msg" -ForegroundColor Red }
|
|
24
|
-
|
|
25
|
-
# Git 저장소 확인
|
|
26
|
-
$gitDir = git rev-parse --git-dir 2>$null
|
|
27
|
-
if (-not $gitDir) {
|
|
28
|
-
Write-Err "Git 저장소가 아닙니다."
|
|
29
|
-
exit 1
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
$hooksDir = Join-Path $gitDir "hooks"
|
|
33
|
-
$sourceDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
34
|
-
|
|
35
|
-
$hooks = @("pre-commit", "commit-msg", "pre-push")
|
|
36
|
-
|
|
37
|
-
if ($Uninstall) {
|
|
38
|
-
Write-Info "Git Hooks 제거 중..."
|
|
39
|
-
foreach ($hook in $hooks) {
|
|
40
|
-
$target = Join-Path $hooksDir $hook
|
|
41
|
-
if (Test-Path $target) {
|
|
42
|
-
Remove-Item $target -Force
|
|
43
|
-
Write-Success "$hook 제거됨"
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
Write-Success "Git Hooks 제거 완료"
|
|
47
|
-
exit 0
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
Write-Info "BMad6GitHub Git Hooks 설치 중..."
|
|
51
|
-
|
|
52
|
-
# hooks 폴더 생성
|
|
53
|
-
if (-not (Test-Path $hooksDir)) {
|
|
54
|
-
New-Item -ItemType Directory -Path $hooksDir | Out-Null
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
foreach ($hook in $hooks) {
|
|
58
|
-
$source = Join-Path $sourceDir $hook
|
|
59
|
-
$target = Join-Path $hooksDir $hook
|
|
60
|
-
|
|
61
|
-
if (-not (Test-Path $source)) {
|
|
62
|
-
Write-Warn "$hook 소스 파일 없음: $source"
|
|
63
|
-
continue
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
# 기존 hook 백업
|
|
67
|
-
if (Test-Path $target) {
|
|
68
|
-
$backup = "$target.backup"
|
|
69
|
-
Copy-Item $target $backup -Force
|
|
70
|
-
Write-Warn "기존 $hook 백업됨: $backup"
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
# hook 복사
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Write-Host ""
|
|
81
|
-
Write-
|
|
82
|
-
Write-Host "
|
|
83
|
-
Write-
|
|
84
|
-
Write-Host " - pre-
|
|
85
|
-
Write-Host ""
|
|
86
|
-
Write-
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS
|
|
3
|
+
BMad6GitHub Git Hooks 설치 스크립트
|
|
4
|
+
.DESCRIPTION
|
|
5
|
+
pre-commit, commit-msg hook을 .git/hooks에 설치합니다.
|
|
6
|
+
.PARAMETER Uninstall
|
|
7
|
+
hook 제거
|
|
8
|
+
.EXAMPLE
|
|
9
|
+
.\install-hooks.ps1
|
|
10
|
+
.\install-hooks.ps1 -Uninstall
|
|
11
|
+
#>
|
|
12
|
+
|
|
13
|
+
param(
|
|
14
|
+
[switch]$Uninstall
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
$ErrorActionPreference = "Stop"
|
|
18
|
+
|
|
19
|
+
# 색상 출력 함수
|
|
20
|
+
function Write-Info { param($msg) Write-Host "[INFO] $msg" -ForegroundColor Cyan }
|
|
21
|
+
function Write-Success { param($msg) Write-Host "[OK] $msg" -ForegroundColor Green }
|
|
22
|
+
function Write-Warn { param($msg) Write-Host "[WARN] $msg" -ForegroundColor Yellow }
|
|
23
|
+
function Write-Err { param($msg) Write-Host "[ERROR] $msg" -ForegroundColor Red }
|
|
24
|
+
|
|
25
|
+
# Git 저장소 확인
|
|
26
|
+
$gitDir = git rev-parse --git-dir 2>$null
|
|
27
|
+
if (-not $gitDir) {
|
|
28
|
+
Write-Err "Git 저장소가 아닙니다."
|
|
29
|
+
exit 1
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
$hooksDir = Join-Path $gitDir "hooks"
|
|
33
|
+
$sourceDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
34
|
+
|
|
35
|
+
$hooks = @("pre-commit", "commit-msg", "pre-push", "post-merge")
|
|
36
|
+
|
|
37
|
+
if ($Uninstall) {
|
|
38
|
+
Write-Info "Git Hooks 제거 중..."
|
|
39
|
+
foreach ($hook in $hooks) {
|
|
40
|
+
$target = Join-Path $hooksDir $hook
|
|
41
|
+
if (Test-Path $target) {
|
|
42
|
+
Remove-Item $target -Force
|
|
43
|
+
Write-Success "$hook 제거됨"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
Write-Success "Git Hooks 제거 완료"
|
|
47
|
+
exit 0
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
Write-Info "BMad6GitHub Git Hooks 설치 중..."
|
|
51
|
+
|
|
52
|
+
# hooks 폴더 생성
|
|
53
|
+
if (-not (Test-Path $hooksDir)) {
|
|
54
|
+
New-Item -ItemType Directory -Path $hooksDir | Out-Null
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
foreach ($hook in $hooks) {
|
|
58
|
+
$source = Join-Path $sourceDir $hook
|
|
59
|
+
$target = Join-Path $hooksDir $hook
|
|
60
|
+
|
|
61
|
+
if (-not (Test-Path $source)) {
|
|
62
|
+
Write-Warn "$hook 소스 파일 없음: $source"
|
|
63
|
+
continue
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
# 기존 hook 백업
|
|
67
|
+
if (Test-Path $target) {
|
|
68
|
+
$backup = "$target.backup"
|
|
69
|
+
Copy-Item $target $backup -Force
|
|
70
|
+
Write-Warn "기존 $hook 백업됨: $backup"
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# hook 복사 (CRLF → LF 변환 — bash 스크립트는 LF 필수)
|
|
74
|
+
$content = Get-Content $source -Raw
|
|
75
|
+
$content = $content -replace "`r`n", "`n"
|
|
76
|
+
[System.IO.File]::WriteAllText($target, $content, [System.Text.UTF8Encoding]::new($false))
|
|
77
|
+
Write-Success "$hook 설치됨"
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
Write-Host ""
|
|
81
|
+
Write-Success "Git Hooks 설치 완료!"
|
|
82
|
+
Write-Host ""
|
|
83
|
+
Write-Info "설치된 Hook:"
|
|
84
|
+
Write-Host " - pre-commit: master 브랜치 직접 커밋 차단" -ForegroundColor White
|
|
85
|
+
Write-Host " - commit-msg: Conventional Commits 형식 검증" -ForegroundColor White
|
|
86
|
+
Write-Host " - pre-push: master 브랜치 직접 푸시 차단" -ForegroundColor White
|
|
87
|
+
Write-Host " - post-merge: 머지된 로컬 브랜치 자동 정리" -ForegroundColor White
|
|
88
|
+
Write-Host ""
|
|
89
|
+
Write-Info "Hook 제거: .\install-hooks.ps1 -Uninstall"
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'onboarding'
|
|
3
|
+
description: 'Generate a comprehensive onboarding document for new developers joining this project.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/onboarding/workflow.md, READ its entire contents and follow its directions exactly!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/services/installer.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC,aAAa,CAAC,CAqFxB;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/services/installer.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC,aAAa,CAAC,CAqFxB;AAgHD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiD5F;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA0DlE"}
|