lite-kits 0.1.0__py3-none-any.whl

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 (31) hide show
  1. lite_kits/__init__.py +9 -0
  2. lite_kits/cli.py +481 -0
  3. lite_kits/installer.py +417 -0
  4. lite_kits/kits/README.md +191 -0
  5. lite_kits/kits/git/README.md +374 -0
  6. lite_kits/kits/git/claude/commands/cleanup.md +361 -0
  7. lite_kits/kits/git/claude/commands/commit.md +612 -0
  8. lite_kits/kits/git/claude/commands/pr.md +593 -0
  9. lite_kits/kits/git/github/prompts/cleanup.prompt.md +382 -0
  10. lite_kits/kits/git/github/prompts/commit.prompt.md +591 -0
  11. lite_kits/kits/git/github/prompts/pr.prompt.md +603 -0
  12. lite_kits/kits/git/scripts/bash/get-git-context.sh +208 -0
  13. lite_kits/kits/git/scripts/powershell/Get-GitContext.ps1 +242 -0
  14. lite_kits/kits/multiagent/README.md +395 -0
  15. lite_kits/kits/multiagent/claude/commands/sync.md +331 -0
  16. lite_kits/kits/multiagent/github/prompts/sync.prompt.md +331 -0
  17. lite_kits/kits/multiagent/memory/git-worktrees-protocol.md +370 -0
  18. lite_kits/kits/multiagent/memory/parallel-work-protocol.md +536 -0
  19. lite_kits/kits/multiagent/memory/pr-workflow-guide.md +281 -0
  20. lite_kits/kits/multiagent/templates/collaboration-structure/README.md +166 -0
  21. lite_kits/kits/multiagent/templates/decision.md +79 -0
  22. lite_kits/kits/multiagent/templates/handoff.md +95 -0
  23. lite_kits/kits/multiagent/templates/session-log.md +68 -0
  24. lite_kits/kits/project/README.md +244 -0
  25. lite_kits/kits/project/claude/commands/orient.md +163 -0
  26. lite_kits/kits/project/github/prompts/orient.prompt.md +163 -0
  27. lite_kits-0.1.0.dist-info/METADATA +415 -0
  28. lite_kits-0.1.0.dist-info/RECORD +31 -0
  29. lite_kits-0.1.0.dist-info/WHEEL +4 -0
  30. lite_kits-0.1.0.dist-info/entry_points.txt +2 -0
  31. lite_kits-0.1.0.dist-info/licenses/LICENSE +21 -0
lite_kits/installer.py ADDED
@@ -0,0 +1,417 @@
1
+ """
2
+ Installer logic for spec-kit-multiagent
3
+
4
+ Handles installation, removal, and validation of multiagent features.
5
+ """
6
+
7
+ import shutil
8
+ from pathlib import Path
9
+ from typing import Dict, List, Optional
10
+
11
+
12
+ class Installer:
13
+ """Manages installation of multiagent features to spec-kit projects."""
14
+
15
+ def __init__(self, target_dir: Path, kits: Optional[List[str]] = None):
16
+ """
17
+ Initialize installer.
18
+
19
+ Args:
20
+ target_dir: Target spec-kit project directory
21
+ kits: List of kits to install (project, git, multiagent). Defaults to ['project']
22
+ """
23
+ self.target_dir = Path(target_dir).resolve()
24
+ self.kits_dir = Path(__file__).parent / "kits"
25
+ self.kits = kits or ['project'] # Default to project kit only
26
+
27
+ # Validate kit names
28
+ valid_kits = {'project', 'git', 'multiagent'}
29
+ invalid = set(self.kits) - valid_kits
30
+ if invalid:
31
+ raise ValueError(f"Invalid kit(s): {invalid}. Valid: {valid_kits}")
32
+
33
+ # Auto-include dependencies
34
+ # multiagent requires both project and git
35
+ if 'multiagent' in self.kits:
36
+ if 'project' not in self.kits:
37
+ self.kits.append('project')
38
+ if 'git' not in self.kits:
39
+ self.kits.append('git')
40
+
41
+ def is_spec_kit_project(self) -> bool:
42
+ """
43
+ Check if target directory is a spec-kit project.
44
+
45
+ Returns:
46
+ True if directory contains spec-kit markers
47
+ """
48
+ markers = [
49
+ self.target_dir / ".specify",
50
+ self.target_dir / ".claude",
51
+ self.target_dir / ".github" / "prompts",
52
+ ]
53
+ return any(marker.exists() for marker in markers)
54
+
55
+ def is_multiagent_installed(self) -> bool:
56
+ """
57
+ Check if multiagent features are already installed.
58
+
59
+ Returns:
60
+ True if multiagent features detected
61
+ """
62
+ # Check for kit markers
63
+ markers = {
64
+ 'project': [
65
+ self.target_dir / ".claude" / "commands" / "orient.md",
66
+ self.target_dir / ".github" / "prompts" / "orient.prompt.md",
67
+ ],
68
+ 'git': [
69
+ self.target_dir / ".claude" / "commands" / "commit.md",
70
+ self.target_dir / ".github" / "prompts" / "commit.prompt.md",
71
+ ],
72
+ 'multiagent': [
73
+ self.target_dir / ".specify" / "memory" / "pr-workflow-guide.md",
74
+ ],
75
+ }
76
+
77
+ # Check if any requested kit is already installed
78
+ for kit in self.kits:
79
+ if any(marker.exists() for marker in markers.get(kit, [])):
80
+ return True
81
+
82
+ return False
83
+
84
+ def preview_installation(self) -> Dict[str, List[str]]:
85
+ """
86
+ Preview what files will be created/modified.
87
+
88
+ Returns:
89
+ Dictionary with lists of new_files, modified_files, new_directories
90
+ """
91
+ changes = {
92
+ "new_files": [],
93
+ "modified_files": [],
94
+ "new_directories": [],
95
+ }
96
+
97
+ # Check which interface(s) exist
98
+ has_claude = (self.target_dir / ".claude").exists()
99
+ has_copilot = (self.target_dir / ".github" / "prompts").exists()
100
+
101
+ # Project kit files
102
+ if 'project' in self.kits:
103
+ if has_claude:
104
+ changes["new_files"].append(".claude/commands/orient.md")
105
+ if has_copilot:
106
+ changes["new_files"].append(".github/prompts/orient.prompt.md")
107
+
108
+ # Git kit files
109
+ if 'git' in self.kits:
110
+ if has_claude:
111
+ changes["new_files"].append(".claude/commands/commit.md")
112
+ changes["new_files"].append(".claude/commands/pr.md")
113
+ if has_copilot:
114
+ changes["new_files"].append(".github/prompts/commit.prompt.md")
115
+ changes["new_files"].append(".github/prompts/pr.prompt.md")
116
+
117
+ # Multiagent kit files
118
+ if 'multiagent' in self.kits and (self.target_dir / ".specify").exists():
119
+ changes["new_files"].extend([
120
+ ".specify/memory/pr-workflow-guide.md",
121
+ ".specify/memory/git-worktrees-protocol.md",
122
+ ])
123
+ changes["new_directories"].append("specs/*/collaboration/ (created with new features)")
124
+
125
+ return changes
126
+
127
+ def install(self) -> Dict:
128
+ """
129
+ Install multiagent features to target project.
130
+
131
+ Returns:
132
+ Dictionary with success status and installed items
133
+ """
134
+ result = {
135
+ "success": False,
136
+ "installed": [],
137
+ "error": None,
138
+ }
139
+
140
+ try:
141
+ # Detect which interfaces are present
142
+ has_claude = (self.target_dir / ".claude").exists()
143
+ has_copilot = (self.target_dir / ".github" / "prompts").exists()
144
+
145
+ if not has_claude and not has_copilot:
146
+ result["error"] = "No supported AI interface found (.claude or .github/prompts)"
147
+ return result
148
+
149
+ # Install project kit
150
+ if 'project' in self.kits:
151
+ if has_claude:
152
+ self._install_file('project/claude/commands/orient.md', '.claude/commands/orient.md')
153
+ result["installed"].append("project-kit (Claude): /orient command")
154
+
155
+ if has_copilot:
156
+ self._install_file('project/github/prompts/orient.prompt.md', '.github/prompts/orient.prompt.md')
157
+ result["installed"].append("project-kit (Copilot): /orient command")
158
+
159
+ # Install git kit
160
+ if 'git' in self.kits:
161
+ if has_claude:
162
+ self._install_file('git/claude/commands/commit.md', '.claude/commands/commit.md')
163
+ self._install_file('git/claude/commands/pr.md', '.claude/commands/pr.md')
164
+ self._install_file('git/claude/commands/cleanup.md', '.claude/commands/cleanup.md')
165
+ result["installed"].append("git-kit (Claude): /commit, /pr, /cleanup commands")
166
+
167
+ if has_copilot:
168
+ self._install_file('git/github/prompts/commit.prompt.md', '.github/prompts/commit.prompt.md')
169
+ self._install_file('git/github/prompts/pr.prompt.md', '.github/prompts/pr.prompt.md')
170
+ self._install_file('git/github/prompts/cleanup.prompt.md', '.github/prompts/cleanup.prompt.md')
171
+ result["installed"].append("git-kit (Copilot): /commit, /pr, /cleanup commands")
172
+
173
+ # Install multiagent kit
174
+ if 'multiagent' in self.kits and (self.target_dir / ".specify").exists():
175
+ # Commands
176
+ if has_claude:
177
+ self._install_file('multiagent/claude/commands/sync.md', '.claude/commands/sync.md')
178
+ if has_copilot:
179
+ self._install_file('multiagent/github/prompts/sync.prompt.md', '.github/prompts/sync.prompt.md')
180
+
181
+ # Memory guides
182
+ self._install_file('multiagent/memory/pr-workflow-guide.md', '.specify/memory/pr-workflow-guide.md')
183
+ self._install_file('multiagent/memory/git-worktrees-protocol.md', '.specify/memory/git-worktrees-protocol.md')
184
+ self._install_file('multiagent/memory/parallel-work-protocol.md', '.specify/memory/parallel-work-protocol.md')
185
+
186
+ # Templates
187
+ templates_dir = self.target_dir / ".specify" / "templates"
188
+ templates_dir.mkdir(parents=True, exist_ok=True)
189
+ self._install_file('multiagent/templates/session-log.md', '.specify/templates/session-log.md')
190
+ self._install_file('multiagent/templates/handoff.md', '.specify/templates/handoff.md')
191
+ self._install_file('multiagent/templates/decision.md', '.specify/templates/decision.md')
192
+ self._install_file('multiagent/templates/collaboration-structure/README.md', '.specify/templates/collaboration-README.md')
193
+
194
+ result["installed"].append("multiagent-kit: /sync command")
195
+ result["installed"].append("multiagent-kit: Memory guides (PR workflow, git worktrees, parallel work)")
196
+ result["installed"].append("multiagent-kit: Templates (session-log, handoff, decision, collaboration)")
197
+
198
+ result["success"] = True
199
+
200
+ except Exception as e:
201
+ result["error"] = str(e)
202
+
203
+ return result
204
+
205
+ def validate(self) -> Dict:
206
+ """
207
+ Validate kit installation.
208
+
209
+ Returns:
210
+ Dictionary with validation results
211
+ """
212
+ checks = {}
213
+
214
+ # Check project-kit files
215
+ claude_orient = self.target_dir / ".claude" / "commands" / "orient.md"
216
+ copilot_orient = self.target_dir / ".github" / "prompts" / "orient.prompt.md"
217
+
218
+ project_kit_installed = claude_orient.exists() or copilot_orient.exists()
219
+ checks["project_kit"] = {
220
+ "passed": project_kit_installed,
221
+ "message": "project-kit: /orient command found" if project_kit_installed
222
+ else "project-kit not installed - run: lite-kits add --here --kit project",
223
+ }
224
+
225
+ # Check git-kit files
226
+ claude_commit = self.target_dir / ".claude" / "commands" / "commit.md"
227
+ claude_pr = self.target_dir / ".claude" / "commands" / "pr.md"
228
+ claude_cleanup = self.target_dir / ".claude" / "commands" / "cleanup.md"
229
+
230
+ git_kit_installed = claude_commit.exists() or claude_pr.exists() or claude_cleanup.exists()
231
+ checks["git_kit"] = {
232
+ "passed": git_kit_installed,
233
+ "message": "git-kit: /commit, /pr, /cleanup commands found" if git_kit_installed
234
+ else "git-kit not installed - run: lite-kits add --here --kit git",
235
+ }
236
+
237
+ # Check multiagent-kit files (only if user is checking for them)
238
+ claude_sync = self.target_dir / ".claude" / "commands" / "sync.md"
239
+ pr_guide = self.target_dir / ".specify" / "memory" / "pr-workflow-guide.md"
240
+ worktree_guide = self.target_dir / ".specify" / "memory" / "git-worktrees-protocol.md"
241
+
242
+ multiagent_kit_installed = claude_sync.exists() or pr_guide.exists() or worktree_guide.exists()
243
+ checks["multiagent_kit"] = {
244
+ "passed": multiagent_kit_installed,
245
+ "message": "multiagent-kit: /sync command and memory guides found" if multiagent_kit_installed
246
+ else "multiagent-kit not installed - run: lite-kits add --here --kit multiagent",
247
+ }
248
+
249
+ # Only fail validation if NO kits are installed
250
+ # If they only installed project+git, don't fail on missing multiagent
251
+ all_passed = checks["project_kit"]["passed"] or checks["git_kit"]["passed"] or checks["multiagent_kit"]["passed"]
252
+
253
+ return {
254
+ "valid": all_passed,
255
+ "checks": checks,
256
+ }
257
+
258
+ # Private installation methods
259
+
260
+ def _install_file(self, kit_relative_path: str, target_relative_path: str):
261
+ """
262
+ Install a file from kits directory to target project.
263
+
264
+ Args:
265
+ kit_relative_path: Path relative to kits/ directory (e.g., 'project/claude/commands/orient.md')
266
+ target_relative_path: Path relative to target directory (e.g., '.claude/commands/orient.md')
267
+ """
268
+ source = self.kits_dir / kit_relative_path
269
+ target = self.target_dir / target_relative_path
270
+
271
+ if not source.exists():
272
+ raise FileNotFoundError(f"Kit file not found: {source}")
273
+
274
+ target.parent.mkdir(parents=True, exist_ok=True)
275
+ shutil.copy2(source, target)
276
+
277
+ # TODO: Implement these methods
278
+
279
+ def _merge_constitution(self):
280
+ """
281
+ Merge multiagent sections into existing constitution.
282
+
283
+ Strategy:
284
+ 1. Read existing constitution
285
+ 2. Check for multiagent marker (<!-- MULTIAGENT-START -->)
286
+ 3. If marker exists, replace section
287
+ 4. If marker missing, append section
288
+ 5. Preserve user edits outside markers
289
+ """
290
+ # TODO: Implement smart merge logic
291
+ # - Read templates/enhancements/constitution-multiagent.md
292
+ # - Merge into .specify/memory/constitution.md
293
+ # - Use marker comments for idempotent updates
294
+ pass
295
+
296
+ def _install_collaboration_template(self):
297
+ """
298
+ Create collaboration directory template.
299
+
300
+ Creates:
301
+ - .specify/templates/collaboration-template/
302
+ - Scripts reference this when creating new features
303
+ """
304
+ # TODO: Create collaboration directory template
305
+ # - active/
306
+ # - archive/
307
+ # - results/
308
+ pass
309
+
310
+ def remove(self) -> Dict:
311
+ """
312
+ Remove multiagent features from project.
313
+
314
+ Returns to vanilla spec-kit state.
315
+
316
+ Returns:
317
+ Dictionary with success status and removed items
318
+ """
319
+ result = {
320
+ "success": False,
321
+ "removed": [],
322
+ "error": None,
323
+ }
324
+
325
+ try:
326
+ # Remove project kit files
327
+ if 'project' in self.kits:
328
+ removed = []
329
+ # Claude
330
+ orient_claude = self.target_dir / ".claude" / "commands" / "orient.md"
331
+ if orient_claude.exists():
332
+ orient_claude.unlink()
333
+ removed.append(".claude/commands/orient.md")
334
+
335
+ # Copilot
336
+ orient_copilot = self.target_dir / ".github" / "prompts" / "orient.prompt.md"
337
+ if orient_copilot.exists():
338
+ orient_copilot.unlink()
339
+ removed.append(".github/prompts/orient.prompt.md")
340
+
341
+ if removed:
342
+ result["removed"].append(f"project-kit: {', '.join(removed)}")
343
+
344
+ # Remove git kit files
345
+ if 'git' in self.kits:
346
+ removed = []
347
+ git_commands = ['commit', 'pr', 'cleanup']
348
+
349
+ # Claude
350
+ for cmd in git_commands:
351
+ cmd_file = self.target_dir / ".claude" / "commands" / f"{cmd}.md"
352
+ if cmd_file.exists():
353
+ cmd_file.unlink()
354
+ removed.append(f".claude/commands/{cmd}.md")
355
+
356
+ # Copilot
357
+ for cmd in git_commands:
358
+ cmd_file = self.target_dir / ".github" / "prompts" / f"{cmd}.prompt.md"
359
+ if cmd_file.exists():
360
+ cmd_file.unlink()
361
+ removed.append(f".github/prompts/{cmd}.prompt.md")
362
+
363
+ if removed:
364
+ result["removed"].append(f"git-kit: {', '.join(removed)}")
365
+
366
+ # Remove multiagent kit files
367
+ if 'multiagent' in self.kits:
368
+ removed = []
369
+
370
+ # Sync command
371
+ sync_claude = self.target_dir / ".claude" / "commands" / "sync.md"
372
+ if sync_claude.exists():
373
+ sync_claude.unlink()
374
+ removed.append(".claude/commands/sync.md")
375
+
376
+ sync_copilot = self.target_dir / ".github" / "prompts" / "sync.prompt.md"
377
+ if sync_copilot.exists():
378
+ sync_copilot.unlink()
379
+ removed.append(".github/prompts/sync.prompt.md")
380
+
381
+ # Memory guides
382
+ memory_files = [
383
+ 'pr-workflow-guide.md',
384
+ 'git-worktrees-protocol.md',
385
+ 'parallel-work-protocol.md',
386
+ ]
387
+ for file in memory_files:
388
+ file_path = self.target_dir / ".specify" / "memory" / file
389
+ if file_path.exists():
390
+ file_path.unlink()
391
+ removed.append(f".specify/memory/{file}")
392
+
393
+ # Templates
394
+ template_files = [
395
+ 'session-log.md',
396
+ 'handoff.md',
397
+ 'decision.md',
398
+ 'collaboration-README.md',
399
+ ]
400
+ for file in template_files:
401
+ file_path = self.target_dir / ".specify" / "templates" / file
402
+ if file_path.exists():
403
+ file_path.unlink()
404
+ removed.append(f".specify/templates/{file}")
405
+
406
+ if removed:
407
+ result["removed"].append(f"multiagent-kit: {', '.join(removed)}")
408
+
409
+ # Note: Preserve collaboration directories (user data)
410
+ # Note: Preserve vanilla spec-kit files
411
+
412
+ result["success"] = True
413
+
414
+ except Exception as e:
415
+ result["error"] = str(e)
416
+
417
+ return result
@@ -0,0 +1,191 @@
1
+ # Spec-Kit Add-on Kits
2
+
3
+ This directory contains modular add-on kits that can be installed independently or in combination on top of vanilla spec-kit projects.
4
+
5
+ ## Available Kits
6
+
7
+ ### ✅ Recommended (Default Installation)
8
+
9
+ #### 1. **project-kit**
10
+ **Commands**: `/orient` ⭐, `/review`, `/audit`, `/stats`
11
+ **Scripts**: Enhanced feature creation with custom naming
12
+
13
+ Essential project-level utilities combining agent orientation, code quality checks, and vanilla spec-kit enhancements.
14
+
15
+ **Installs to**:
16
+ - `.claude/commands/` (Claude Code)
17
+ - `.github/prompts/` (GitHub Copilot)
18
+ - `.specify/scripts/{bash,powershell}/` (Enhanced scripts)
19
+
20
+ **Use case**: Every project should have this. `/orient` is essential for all AI agents.
21
+
22
+ ---
23
+
24
+ #### 2. **git-kit**
25
+ **Commands**: `/commit`, `/pr`, `/sync`, `/cleanup`
26
+
27
+ Git workflow automation with smart commits, PR creation, sync status, and cleanup operations. Includes ASCII visualization for better readability.
28
+
29
+ **Installs to**:
30
+ - `.claude/commands/` (Claude Code)
31
+ - `.github/prompts/` (GitHub Copilot)
32
+
33
+ **Use case**: Daily git operations made easier with agent assistance.
34
+
35
+ ---
36
+
37
+ ### 📦 Optional
38
+
39
+ #### 3. **multiagent-kit**
40
+ **Files**: Collaboration directories, PR workflow, git worktrees protocol
41
+
42
+ Multi-agent coordination structure for complex projects with multiple AI agents working in parallel.
43
+
44
+ **Dependencies**: Requires `project-kit` (for `/review`) and `git-kit` (for `/commit`, `/pr`)
45
+
46
+ **Installs to**:
47
+ - `.specify/memory/pr-workflow-guide.md`
48
+ - `.specify/memory/git-worktrees-protocol.md`
49
+ - `specs/*/collaboration/` (template, created per-feature)
50
+
51
+ **Use case**: Large projects with multiple AI agents collaborating (e.g., Claude Code + Copilot).
52
+
53
+ ---
54
+
55
+ ## Installation Matrix
56
+
57
+ | Kit | Default | Target Users | Adds | Dependencies |
58
+ |-----|---------|--------------|------|--------------|
59
+ | **project** | ✅ Yes | Everyone | 4 commands + enhanced scripts | None |
60
+ | **git** | ✅ Yes | Everyone | 4 commands with ASCII viz | None |
61
+ | **multiagent** | ❌ No | Multi-agent projects | Collaboration structure | project, git |
62
+
63
+ ## Kit Structure
64
+
65
+ Each kit follows this structure:
66
+
67
+ ```
68
+ kit-name/
69
+ ├── README.md # What this kit does
70
+ ├── claude/ # Claude Code files (optional)
71
+ │ └── commands/ # Slash commands
72
+ ├── github/ # GitHub Copilot files (optional)
73
+ │ └── prompts/ # Prompt files
74
+ ├── scripts/ # Shell scripts (optional)
75
+ │ ├── bash/
76
+ │ └── powershell/
77
+ ├── memory/ # Living documentation (optional)
78
+ └── templates/ # File templates (optional)
79
+ ```
80
+
81
+ ## Cross-Platform & Cross-Agent Support
82
+
83
+ All kits support:
84
+ - **Agents**: Claude Code, GitHub Copilot (both included by default)
85
+ - **Shells**: Bash (Linux/macOS), PowerShell (Windows/cross-platform)
86
+
87
+ When installed, files go to the appropriate locations:
88
+ - Claude Code: `.claude/commands/*.md`
89
+ - GitHub Copilot: `.github/prompts/*.prompt.md`
90
+ - Scripts: `.specify/scripts/{bash,powershell}/*.{sh,ps1}`
91
+
92
+ ## Installation
93
+
94
+ ### Install Recommended Kits (project + git)
95
+
96
+ ```bash
97
+ lite-kits install -Recommended
98
+ # or
99
+ lite-kits install -Kit project,git
100
+ ```
101
+
102
+ ### Install Individual Kits
103
+
104
+ ```bash
105
+ lite-kits install -Kit project
106
+ lite-kits install -Kit git
107
+ lite-kits install -Kit multiagent # Auto-installs project + git
108
+ ```
109
+
110
+ ### Install All Kits
111
+
112
+ ```bash
113
+ lite-kits install -All
114
+ ```
115
+
116
+ ### Uninstall Kits
117
+
118
+ ```bash
119
+ lite-kits remove -Kit multiagent
120
+ lite-kits remove -Kit git,project
121
+ ```
122
+
123
+ ## Design Principles
124
+
125
+ ### ✅ DO
126
+ - Only add new files (never modify vanilla files)
127
+ - Support both Claude Code and GitHub Copilot
128
+ - Support both Bash and PowerShell
129
+ - Keep commands simple (markdown prompts)
130
+ - Version-safe (upgradable without conflicts)
131
+ - Modular (install/uninstall independently)
132
+
133
+ ### ❌ DON'T
134
+ - Modify vanilla spec-kit files
135
+ - Add runtime dependencies
136
+ - Require specific Python/Node versions
137
+ - Lock users into specific agents or shells
138
+ - Create tight coupling between kits
139
+
140
+ ## Kit Details
141
+
142
+ ### project-kit Commands
143
+
144
+ | Command | Description |
145
+ |---------|-------------|
146
+ | `/orient` | Agent orientation (read docs, check git, determine role) |
147
+ | `/review` | Code review against constitution and best practices |
148
+ | `/audit` | Security and quality audit |
149
+ | `/stats` | Project statistics (LOC, test coverage, complexity) |
150
+
151
+ ### git-kit Commands
152
+
153
+ | Command | Description |
154
+ |---------|-------------|
155
+ | `/commit` | Smart commit with agent attribution |
156
+ | `/pr` | Create pull request with auto-generated description |
157
+ | `/sync` | Show sync status with ASCII visualization |
158
+ | `/cleanup` | Clean merged branches, stale worktrees |
159
+
160
+ ### project-kit Enhancements
161
+
162
+ | Enhancement | Description |
163
+ |-------------|-------------|
164
+ | Custom feature numbers | Specify exact feature number instead of auto-increment |
165
+ | Custom feature names | Full control over branch/directory names |
166
+ | Feature templates | Pre-configured structures (api, cli, library) |
167
+
168
+ ### multiagent-kit Structure
169
+
170
+ | Component | Description |
171
+ |-----------|-------------|
172
+ | PR workflow guide | How AI agents create PRs |
173
+ | Git worktrees protocol | Parallel development with worktrees |
174
+ | Collaboration directories | Active/archive/results structure |
175
+
176
+ ## Examples
177
+
178
+ - **minimal-todo-app**: Uses `project` + `git` kits
179
+ - **blog-with-auth**: Uses `project` + `git` + `multiagent` kits
180
+
181
+ See [examples/](../../examples/) for working examples.
182
+
183
+ ## Contributing
184
+
185
+ See [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines on adding new kits.
186
+
187
+ New kit ideas:
188
+ - `testing-kit`: Test generation helpers
189
+ - `ci-kit`: GitHub Actions templates
190
+ - `deploy-kit`: Deployment workflows
191
+ - `debug-kit`: Debugging helpers