@prmichaelsen/task-mcp 0.2.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 (142) hide show
  1. package/.env.example +19 -0
  2. package/AGENT.md +1165 -0
  3. package/CHANGELOG.md +72 -0
  4. package/agent/commands/acp.commit.md +511 -0
  5. package/agent/commands/acp.init.md +376 -0
  6. package/agent/commands/acp.package-install.md +347 -0
  7. package/agent/commands/acp.proceed.md +311 -0
  8. package/agent/commands/acp.report.md +392 -0
  9. package/agent/commands/acp.status.md +280 -0
  10. package/agent/commands/acp.sync.md +323 -0
  11. package/agent/commands/acp.update.md +301 -0
  12. package/agent/commands/acp.validate.md +385 -0
  13. package/agent/commands/acp.version-check-for-updates.md +275 -0
  14. package/agent/commands/acp.version-check.md +190 -0
  15. package/agent/commands/acp.version-update.md +288 -0
  16. package/agent/commands/command.template.md +273 -0
  17. package/agent/commands/git.commit.md +511 -0
  18. package/agent/commands/git.init.md +513 -0
  19. package/agent/design/.gitkeep +0 -0
  20. package/agent/design/acp-task-execution-requirements.md +555 -0
  21. package/agent/design/api-dto-design.md +394 -0
  22. package/agent/design/code-extraction-guide.md +827 -0
  23. package/agent/design/design.template.md +136 -0
  24. package/agent/design/requirements.template.md +387 -0
  25. package/agent/design/rest-api-integration.md +489 -0
  26. package/agent/design/sdk-export-requirements.md +549 -0
  27. package/agent/milestones/.gitkeep +0 -0
  28. package/agent/milestones/milestone-1-{title}.template.md +206 -0
  29. package/agent/milestones/milestone-2-task-infrastructure.md +232 -0
  30. package/agent/milestones/milestone-4-autonomous-execution.md +235 -0
  31. package/agent/patterns/.gitkeep +0 -0
  32. package/agent/patterns/bootstrap.md +1271 -0
  33. package/agent/patterns/bootstrap.template.md +1237 -0
  34. package/agent/patterns/pattern.template.md +364 -0
  35. package/agent/progress.template.yaml +158 -0
  36. package/agent/progress.yaml +375 -0
  37. package/agent/scripts/check-for-updates.sh +88 -0
  38. package/agent/scripts/install.sh +157 -0
  39. package/agent/scripts/uninstall.sh +75 -0
  40. package/agent/scripts/update.sh +139 -0
  41. package/agent/scripts/version.sh +35 -0
  42. package/agent/tasks/.gitkeep +0 -0
  43. package/agent/tasks/task-1-{title}.template.md +225 -0
  44. package/agent/tasks/task-86-task-data-model-schemas.md +143 -0
  45. package/agent/tasks/task-87-task-database-service.md +220 -0
  46. package/agent/tasks/task-88-firebase-client-wrapper.md +139 -0
  47. package/agent/tasks/task-88-task-execution-engine.md +277 -0
  48. package/agent/tasks/task-89-mcp-server-implementation.md +197 -0
  49. package/agent/tasks/task-90-build-configuration.md +146 -0
  50. package/agent/tasks/task-91-deployment-configuration.md +128 -0
  51. package/coverage/base.css +224 -0
  52. package/coverage/block-navigation.js +87 -0
  53. package/coverage/favicon.png +0 -0
  54. package/coverage/index.html +191 -0
  55. package/coverage/lcov-report/base.css +224 -0
  56. package/coverage/lcov-report/block-navigation.js +87 -0
  57. package/coverage/lcov-report/favicon.png +0 -0
  58. package/coverage/lcov-report/index.html +191 -0
  59. package/coverage/lcov-report/prettify.css +1 -0
  60. package/coverage/lcov-report/prettify.js +2 -0
  61. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  62. package/coverage/lcov-report/sorter.js +210 -0
  63. package/coverage/lcov-report/src/client.ts.html +1030 -0
  64. package/coverage/lcov-report/src/constant/collections.ts.html +469 -0
  65. package/coverage/lcov-report/src/constant/index.html +116 -0
  66. package/coverage/lcov-report/src/dto/index.html +116 -0
  67. package/coverage/lcov-report/src/dto/transformers.ts.html +568 -0
  68. package/coverage/lcov-report/src/index.html +146 -0
  69. package/coverage/lcov-report/src/schemas/index.html +116 -0
  70. package/coverage/lcov-report/src/schemas/task.ts.html +547 -0
  71. package/coverage/lcov-report/src/server-factory.ts.html +418 -0
  72. package/coverage/lcov-report/src/server.ts.html +289 -0
  73. package/coverage/lcov-report/src/services/index.html +116 -0
  74. package/coverage/lcov-report/src/services/task-database.service.ts.html +1495 -0
  75. package/coverage/lcov-report/src/tools/index.html +236 -0
  76. package/coverage/lcov-report/src/tools/index.ts.html +292 -0
  77. package/coverage/lcov-report/src/tools/task-add-message.ts.html +277 -0
  78. package/coverage/lcov-report/src/tools/task-complete-task-item.ts.html +343 -0
  79. package/coverage/lcov-report/src/tools/task-create-milestone.ts.html +286 -0
  80. package/coverage/lcov-report/src/tools/task-create-task-item.ts.html +358 -0
  81. package/coverage/lcov-report/src/tools/task-get-next-step.ts.html +460 -0
  82. package/coverage/lcov-report/src/tools/task-get-status.ts.html +316 -0
  83. package/coverage/lcov-report/src/tools/task-report-completion.ts.html +343 -0
  84. package/coverage/lcov-report/src/tools/task-update-progress.ts.html +232 -0
  85. package/coverage/lcov.info +974 -0
  86. package/coverage/prettify.css +1 -0
  87. package/coverage/prettify.js +2 -0
  88. package/coverage/sort-arrow-sprite.png +0 -0
  89. package/coverage/sorter.js +210 -0
  90. package/coverage/src/client.ts.html +1030 -0
  91. package/coverage/src/constant/collections.ts.html +469 -0
  92. package/coverage/src/constant/index.html +116 -0
  93. package/coverage/src/dto/index.html +116 -0
  94. package/coverage/src/dto/transformers.ts.html +568 -0
  95. package/coverage/src/index.html +146 -0
  96. package/coverage/src/schemas/index.html +116 -0
  97. package/coverage/src/schemas/task.ts.html +547 -0
  98. package/coverage/src/server-factory.ts.html +418 -0
  99. package/coverage/src/server.ts.html +289 -0
  100. package/coverage/src/services/index.html +116 -0
  101. package/coverage/src/services/task-database.service.ts.html +1495 -0
  102. package/coverage/src/tools/index.html +236 -0
  103. package/coverage/src/tools/index.ts.html +292 -0
  104. package/coverage/src/tools/task-add-message.ts.html +277 -0
  105. package/coverage/src/tools/task-complete-task-item.ts.html +343 -0
  106. package/coverage/src/tools/task-create-milestone.ts.html +286 -0
  107. package/coverage/src/tools/task-create-task-item.ts.html +358 -0
  108. package/coverage/src/tools/task-get-next-step.ts.html +460 -0
  109. package/coverage/src/tools/task-get-status.ts.html +316 -0
  110. package/coverage/src/tools/task-report-completion.ts.html +343 -0
  111. package/coverage/src/tools/task-update-progress.ts.html +232 -0
  112. package/firestore.rules +95 -0
  113. package/jest.config.js +31 -0
  114. package/package.json +67 -0
  115. package/src/client.spec.ts +199 -0
  116. package/src/client.ts +315 -0
  117. package/src/constant/collections.ts +128 -0
  118. package/src/dto/index.ts +47 -0
  119. package/src/dto/task-api.dto.ts +219 -0
  120. package/src/dto/transformers.spec.ts +462 -0
  121. package/src/dto/transformers.ts +161 -0
  122. package/src/schemas/task.ts +154 -0
  123. package/src/server-factory.spec.ts +70 -0
  124. package/src/server-factory.ts +111 -0
  125. package/src/server.ts +68 -0
  126. package/src/services/task-database.service.e2e.ts +116 -0
  127. package/src/services/task-database.service.spec.ts +479 -0
  128. package/src/services/task-database.service.ts +470 -0
  129. package/src/test-schemas.ts +161 -0
  130. package/src/tools/index.ts +69 -0
  131. package/src/tools/task-add-message.ts +64 -0
  132. package/src/tools/task-complete-task-item.ts +86 -0
  133. package/src/tools/task-create-milestone.ts +67 -0
  134. package/src/tools/task-create-task-item.ts +91 -0
  135. package/src/tools/task-get-next-step.spec.ts +136 -0
  136. package/src/tools/task-get-next-step.ts +125 -0
  137. package/src/tools/task-get-status.spec.ts +213 -0
  138. package/src/tools/task-get-status.ts +77 -0
  139. package/src/tools/task-report-completion.ts +86 -0
  140. package/src/tools/task-update-progress.ts +49 -0
  141. package/src/tools/tools.spec.ts +194 -0
  142. package/tsconfig.json +31 -0
@@ -0,0 +1,513 @@
1
+ # Command: init
2
+
3
+ > **🤖 Agent Directive**: If you are reading this file, the command `@git.init` has been invoked. Follow the steps below to execute this command.
4
+
5
+ **Namespace**: git
6
+ **Version**: 1.0.0
7
+ **Created**: 2026-02-16
8
+ **Last Updated**: 2026-02-16
9
+ **Status**: Active
10
+
11
+ ---
12
+
13
+ **Purpose**: Initialize a git repository with intelligent .gitignore based on project type
14
+ **Category**: Creation
15
+ **Frequency**: Once
16
+
17
+ ---
18
+
19
+ ## What This Command Does
20
+
21
+ This command intelligently initializes a git repository for your project by:
22
+ 1. Analyzing the project structure to detect the project type (Node.js, Python, Rust, etc.)
23
+ 2. Running `git init` to create the repository
24
+ 3. Creating or updating `.gitignore` with sensible defaults based on the detected project type
25
+ 4. Ensuring dependency lock files are NOT ignored (they should be committed)
26
+ 5. Ignoring build directories, distribution directories, and dependency installation directories
27
+
28
+ The command is smart about .gitignore - it evaluates your project to determine what should be ignored rather than using a generic template. This ensures your repository follows best practices for your specific technology stack.
29
+
30
+ **Example**: "For a Node.js project, this command will detect `package.json`, initialize git, and create a `.gitignore` that ignores `node_modules/`, `dist/`, `*.tgz`, but keeps `package-lock.json` committed."
31
+
32
+ ---
33
+
34
+ ## Prerequisites
35
+
36
+ - [ ] Project directory exists and contains project files
37
+ - [ ] Git is installed on the system
38
+ - [ ] No existing `.git` directory (or you want to reinitialize)
39
+
40
+ ---
41
+
42
+ ## Steps
43
+
44
+ ### 1. Evaluate Project Type
45
+
46
+ Analyze the project structure to determine the technology stack and project type.
47
+
48
+ **Actions**:
49
+ - Check for `package.json` (Node.js/npm)
50
+ - Check for `pyproject.toml`, `setup.py`, `requirements.txt` (Python)
51
+ - Check for `Cargo.toml` (Rust)
52
+ - Check for `pom.xml`, `build.gradle` (Java)
53
+ - Check for `go.mod` (Go)
54
+ - Check for `composer.json` (PHP)
55
+ - Check for `.csproj`, `.sln` (C#/.NET)
56
+ - Check for `Gemfile` (Ruby)
57
+ - Identify any other project-specific files
58
+
59
+ **If Project Type is Unknown**:
60
+ - If the project type cannot be determined from known patterns, use available web search tools (e.g., `mcp--brave-search--brave_web_search`) to research the project structure
61
+ - Search for: "{detected_file_pattern} gitignore best practices"
62
+ - Search for: "{detected_file_pattern} project structure"
63
+ - Search for: "{language_or_framework} build artifacts"
64
+ - Use the search results to determine:
65
+ - What directories should be ignored (build output, dependencies)
66
+ - What lock files exist and should be committed
67
+ - What temporary files should be ignored
68
+ - Common IDE/editor files for that ecosystem
69
+
70
+ **Expected Outcome**: Determine the primary project type(s) and technology stack, using web research if necessary.
71
+
72
+ **Example**:
73
+ ```bash
74
+ # Check for various project files
75
+ ls -la | grep -E "(package.json|pyproject.toml|Cargo.toml|go.mod)"
76
+ ```
77
+
78
+ ### 2. Initialize Git Repository
79
+
80
+ Create the git repository if it doesn't exist.
81
+
82
+ **Actions**:
83
+ - Run `git init` to initialize the repository
84
+ - Verify `.git` directory was created
85
+ - Set initial branch name (typically `main` or `mainline`)
86
+
87
+ **Expected Outcome**: Git repository initialized with `.git` directory created.
88
+
89
+ **Example**:
90
+ ```bash
91
+ git init
92
+ git branch -M main # or mainline, depending on preference
93
+ ```
94
+
95
+ ### 3. Create or Update .gitignore
96
+
97
+ Generate a `.gitignore` file with intelligent defaults based on the detected project type.
98
+
99
+ **Actions**:
100
+ - Create `.gitignore` if it doesn't exist, or read existing one
101
+ - Add project-type-specific ignore patterns
102
+ - Ensure dependency lock files are NOT ignored
103
+ - Add common ignore patterns for build/dist directories
104
+ - Add editor/IDE specific ignores
105
+
106
+ **Expected Outcome**: `.gitignore` file created or updated with appropriate patterns.
107
+
108
+ **Common Patterns to Include**:
109
+
110
+ #### All Projects
111
+ ```gitignore
112
+ # Editor/IDE
113
+ .vscode/
114
+ .idea/
115
+ *.swp
116
+ *.swo
117
+ *~
118
+ .DS_Store
119
+ Thumbs.db
120
+
121
+ # Environment
122
+ .env
123
+ .env.local
124
+ .env.*.local
125
+ *.log
126
+ ```
127
+
128
+ #### Node.js/npm Projects
129
+ ```gitignore
130
+ # Dependencies
131
+ node_modules/
132
+
133
+ # Build output
134
+ dist/
135
+ build/
136
+ out/
137
+ .next/
138
+ .nuxt/
139
+
140
+ # Package files (but NOT lock files)
141
+ *.tgz
142
+
143
+ # Testing
144
+ coverage/
145
+ .nyc_output/
146
+
147
+ # Cache
148
+ .npm
149
+ .eslintcache
150
+ .cache/
151
+ ```
152
+
153
+ #### Python Projects
154
+ ```gitignore
155
+ # Dependencies
156
+ __pycache__/
157
+ *.py[cod]
158
+ *$py.class
159
+ .Python
160
+
161
+ # Virtual environments
162
+ venv/
163
+ env/
164
+ ENV/
165
+ .venv
166
+
167
+ # Build output
168
+ dist/
169
+ build/
170
+ *.egg-info/
171
+ .eggs/
172
+
173
+ # Testing
174
+ .pytest_cache/
175
+ .coverage
176
+ htmlcov/
177
+ .tox/
178
+ ```
179
+
180
+ #### Rust Projects
181
+ ```gitignore
182
+ # Build output
183
+ target/
184
+ Cargo.lock # Only for libraries; applications should commit this
185
+
186
+ # Debug
187
+ **/*.rs.bk
188
+ ```
189
+
190
+ #### Go Projects
191
+ ```gitignore
192
+ # Build output
193
+ bin/
194
+ *.exe
195
+ *.exe~
196
+ *.dll
197
+ *.so
198
+ *.dylib
199
+
200
+ # Test
201
+ *.test
202
+ *.out
203
+
204
+ # Vendor (if not using modules)
205
+ vendor/
206
+ ```
207
+
208
+ #### Java Projects
209
+ ```gitignore
210
+ # Build output
211
+ target/
212
+ build/
213
+ out/
214
+ *.class
215
+ *.jar
216
+ *.war
217
+ *.ear
218
+
219
+ # IDE
220
+ .gradle/
221
+ .settings/
222
+ .classpath
223
+ .project
224
+ ```
225
+
226
+ **CRITICAL**: Ensure these are NOT ignored:
227
+ - `package-lock.json` (Node.js)
228
+ - `yarn.lock` (Node.js/Yarn)
229
+ - `pnpm-lock.yaml` (Node.js/pnpm)
230
+ - `Pipfile.lock` (Python/Pipenv)
231
+ - `poetry.lock` (Python/Poetry)
232
+ - `Cargo.lock` (Rust applications)
233
+ - `go.sum` (Go)
234
+ - `composer.lock` (PHP)
235
+ - `Gemfile.lock` (Ruby)
236
+
237
+ ### 4. Verify .gitignore
238
+
239
+ Check that the `.gitignore` file is correct and complete.
240
+
241
+ **Actions**:
242
+ - Read the created `.gitignore` file
243
+ - Verify lock files are not ignored
244
+ - Verify build/dist directories are ignored
245
+ - Verify dependency directories are ignored
246
+ - Check for any project-specific patterns that should be added
247
+
248
+ **Expected Outcome**: `.gitignore` file is correct and follows best practices.
249
+
250
+ ### 5. Display Summary
251
+
252
+ Show what was done and what's ready to be committed.
253
+
254
+ **Actions**:
255
+ - Display detected project type
256
+ - Show `.gitignore` patterns added
257
+ - Run `git status` to show initial state
258
+ - Provide next steps
259
+
260
+ **Expected Outcome**: User understands what was initialized and what to do next.
261
+
262
+ **Example**:
263
+ ```bash
264
+ git status
265
+ ```
266
+
267
+ ---
268
+
269
+ ## Verification
270
+
271
+ - [ ] `.git` directory exists
272
+ - [ ] `.gitignore` file exists and contains appropriate patterns
273
+ - [ ] Dependency lock files are NOT in `.gitignore`
274
+ - [ ] Build directories (dist/, build/, target/) are in `.gitignore`
275
+ - [ ] Dependency install directories (node_modules/, venv/, etc.) are in `.gitignore`
276
+ - [ ] `git status` shows untracked files correctly
277
+ - [ ] No sensitive files (like `.env`) are accidentally tracked
278
+
279
+ ---
280
+
281
+ ## Expected Output
282
+
283
+ ### Files Modified
284
+ - `.git/` - Git repository directory created
285
+ - `.gitignore` - Created or updated with project-specific patterns
286
+
287
+ ### Console Output
288
+ ```
289
+ ✓ Detected project type: Node.js (npm)
290
+ ✓ Initialized git repository
291
+ ✓ Created .gitignore with patterns:
292
+ - node_modules/ (dependencies)
293
+ - dist/ (build output)
294
+ - *.tgz (package archives)
295
+ - .env* (environment files)
296
+ ✓ Preserved lock files:
297
+ - package-lock.json (will be committed)
298
+
299
+ Next steps:
300
+ git add .
301
+ git commit -m "Initial commit"
302
+ ```
303
+
304
+ ### Status Update
305
+ - Git repository initialized
306
+ - `.gitignore` configured for project type
307
+ - Ready for initial commit
308
+
309
+ ---
310
+
311
+ ## Examples
312
+
313
+ ### Example 1: Node.js Project
314
+
315
+ **Context**: Starting a new Node.js project with npm
316
+
317
+ **Invocation**: `@git.init`
318
+
319
+ **Result**:
320
+ - Detects `package.json`
321
+ - Initializes git repository
322
+ - Creates `.gitignore` with:
323
+ - `node_modules/` ignored
324
+ - `dist/`, `build/` ignored
325
+ - `*.tgz` ignored
326
+ - `package-lock.json` NOT ignored (will be committed)
327
+ - `.env*` ignored
328
+
329
+ ### Example 2: Python Project
330
+
331
+ **Context**: Starting a Python project with Poetry
332
+
333
+ **Invocation**: `@git.init`
334
+
335
+ **Result**:
336
+ - Detects `pyproject.toml`
337
+ - Initializes git repository
338
+ - Creates `.gitignore` with:
339
+ - `__pycache__/`, `*.pyc` ignored
340
+ - `venv/`, `.venv/` ignored
341
+ - `dist/`, `build/` ignored
342
+ - `poetry.lock` NOT ignored (will be committed)
343
+ - `.env*` ignored
344
+
345
+ ### Example 3: Rust Project
346
+
347
+ **Context**: Starting a Rust application
348
+
349
+ **Invocation**: `@git.init`
350
+
351
+ **Result**:
352
+ - Detects `Cargo.toml`
353
+ - Initializes git repository
354
+ - Creates `.gitignore` with:
355
+ - `target/` ignored
356
+ - `Cargo.lock` NOT ignored for applications (will be committed)
357
+ - `.env*` ignored
358
+
359
+ ### Example 4: Multi-Language Project
360
+
361
+ **Context**: Project with both Node.js frontend and Python backend
362
+
363
+ **Invocation**: `@git.init`
364
+
365
+ **Result**:
366
+ - Detects both `package.json` and `pyproject.toml`
367
+ - Initializes git repository
368
+ - Creates `.gitignore` with patterns for both:
369
+ - `node_modules/` and `__pycache__/` ignored
370
+ - `dist/`, `build/`, `target/` ignored
371
+ - Both `package-lock.json` and `poetry.lock` NOT ignored
372
+ - `.env*` ignored
373
+
374
+ ### Example 5: Unknown Project Type (Elixir)
375
+
376
+ **Context**: Starting an Elixir project with Mix
377
+
378
+ **Invocation**: `@git.init`
379
+
380
+ **Process**:
381
+ - Detects `mix.exs` file (unknown to built-in patterns)
382
+ - Uses web search: "mix.exs gitignore best practices"
383
+ - Finds that Elixir projects should ignore:
384
+ - `_build/` (build output)
385
+ - `deps/` (dependencies)
386
+ - `*.ez` (compiled archives)
387
+ - `mix.lock` should be committed
388
+
389
+ **Result**:
390
+ - Initializes git repository
391
+ - Creates `.gitignore` based on web research:
392
+ - `_build/` ignored
393
+ - `deps/` ignored
394
+ - `*.ez` ignored
395
+ - `mix.lock` NOT ignored (will be committed)
396
+ - `.env*` ignored
397
+
398
+ ---
399
+
400
+ ## Related Commands
401
+
402
+ - [`@git.commit`](git.commit.md) - Use after initialization to make your first commit
403
+ - [`@acp.init`](acp.init.md) - Use to initialize ACP structure after git init
404
+
405
+ ---
406
+
407
+ ## Troubleshooting
408
+
409
+ ### Issue 1: Git already initialized
410
+
411
+ **Symptom**: Error message "Reinitialized existing Git repository"
412
+
413
+ **Cause**: `.git` directory already exists
414
+
415
+ **Solution**: This is usually fine - git will reinitialize without losing history. If you want a fresh start, delete `.git` directory first: `rm -rf .git`
416
+
417
+ ### Issue 2: .gitignore conflicts with existing file
418
+
419
+ **Symptom**: `.gitignore` already exists with different patterns
420
+
421
+ **Cause**: Project already has a `.gitignore`
422
+
423
+ **Solution**: The command will merge patterns, adding new ones while preserving existing ones. Review the result and manually adjust if needed.
424
+
425
+ ### Issue 3: Lock files are ignored
426
+
427
+ **Symptom**: `git status` shows lock files as ignored
428
+
429
+ **Cause**: Existing `.gitignore` has patterns that ignore lock files
430
+
431
+ **Solution**: Edit `.gitignore` and remove any lines that ignore lock files (e.g., `*.lock`, `*-lock.json`). Lock files should always be committed.
432
+
433
+ ### Issue 4: Too many files shown as untracked
434
+
435
+ **Symptom**: `git status` shows hundreds of dependency files
436
+
437
+ **Cause**: Dependency directories not properly ignored
438
+
439
+ **Solution**: Verify `.gitignore` includes dependency directories for your project type. Add missing patterns manually if needed.
440
+
441
+ ### Issue 5: Unknown or uncommon project type
442
+
443
+ **Symptom**: Project type cannot be automatically detected
444
+
445
+ **Cause**: Using a less common language, framework, or custom project structure
446
+
447
+ **Solution**:
448
+ 1. The command will use web search tools to research the project type
449
+ 2. Search queries will be constructed based on detected files (e.g., "makefile gitignore best practices")
450
+ 3. Review the search results and manually verify the suggested patterns
451
+ 4. If still unclear, create a minimal `.gitignore` with common patterns:
452
+ ```gitignore
453
+ # Dependencies (adjust as needed)
454
+ vendor/
455
+ deps/
456
+
457
+ # Build output (adjust as needed)
458
+ build/
459
+ dist/
460
+ out/
461
+ target/
462
+
463
+ # Environment
464
+ .env
465
+ .env.local
466
+
467
+ # Editor
468
+ .vscode/
469
+ .idea/
470
+ ```
471
+ 5. Refine the `.gitignore` as you learn more about the project's build process
472
+
473
+ ---
474
+
475
+ ## Security Considerations
476
+
477
+ ### File Access
478
+ - **Reads**: Project root directory to detect project type
479
+ - **Writes**: `.git/` directory (git repository), `.gitignore` file
480
+ - **Executes**: `git init` command
481
+
482
+ ### Network Access
483
+ - **APIs**: May use web search APIs (e.g., Brave Search) to research unknown project types
484
+ - **Repositories**: None
485
+
486
+ ### Sensitive Data
487
+ - **Secrets**: Automatically ignores `.env` files and environment-specific files
488
+ - **Credentials**: Does not access any credentials
489
+ - **Important**: Always verify `.env` files are in `.gitignore` before committing
490
+
491
+ ---
492
+
493
+ ## Notes
494
+
495
+ - Lock files (package-lock.json, poetry.lock, etc.) should ALWAYS be committed to ensure reproducible builds
496
+ - Build directories (dist/, build/, target/) should ALWAYS be ignored - they can be regenerated
497
+ - Dependency directories (node_modules/, venv/) should ALWAYS be ignored - they can be reinstalled
498
+ - `.tgz` files should be ignored for npm packages to avoid committing packed archives
499
+ - Environment files (`.env`, `.env.local`) should ALWAYS be ignored to prevent credential leaks
500
+ - The command is idempotent - running it multiple times is safe
501
+ - For monorepos, consider running this at the root and adding workspace-specific patterns
502
+ - Always review the generated `.gitignore` to ensure it matches your project's needs
503
+
504
+ ---
505
+
506
+ **Namespace**: git
507
+ **Command**: init
508
+ **Version**: 1.0.0
509
+ **Created**: 2026-02-16
510
+ **Last Updated**: 2026-02-16
511
+ **Status**: Active
512
+ **Compatibility**: ACP 1.3.0+
513
+ **Author**: Agent Context Protocol
File without changes