lite-kits 0.1.1__py3-none-any.whl → 0.3.1__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.
- lite_kits/__init__.py +56 -4
- lite_kits/cli.py +696 -185
- lite_kits/core/__init__.py +6 -0
- lite_kits/core/banner.py +1 -1
- lite_kits/core/conflict_checker.py +115 -0
- lite_kits/core/detector.py +140 -0
- lite_kits/core/installer.py +236 -351
- lite_kits/core/manifest.py +146 -146
- lite_kits/core/validator.py +146 -0
- lite_kits/kits/README.md +6 -6
- lite_kits/kits/dev/README.md +241 -241
- lite_kits/kits/dev/{claude/commands → commands/.claude}/audit.md +143 -143
- lite_kits/kits/dev/{claude/commands → commands/.claude}/cleanup.md +2 -2
- lite_kits/kits/{git/claude/commands → dev/commands/.claude}/commit.md +2 -2
- lite_kits/kits/{project/claude/commands → dev/commands/.claude}/orient.md +3 -4
- lite_kits/kits/{git/claude/commands → dev/commands/.claude}/pr.md +1 -1
- lite_kits/kits/{git/claude/commands → dev/commands/.claude}/review.md +202 -202
- lite_kits/kits/{project/claude/commands → dev/commands/.claude}/stats.md +162 -162
- lite_kits/kits/{project/github/prompts → dev/commands/.github}/audit.prompt.md +143 -143
- lite_kits/kits/{git/github/prompts → dev/commands/.github}/cleanup.prompt.md +2 -2
- lite_kits/kits/{git/github/prompts → dev/commands/.github}/commit.prompt.md +2 -2
- lite_kits/kits/dev/{github/prompts → commands/.github}/orient.prompt.md +3 -4
- lite_kits/kits/{git/github/prompts → dev/commands/.github}/pr.prompt.md +1 -1
- lite_kits/kits/{git/github/prompts → dev/commands/.github}/review.prompt.md +202 -202
- lite_kits/kits/dev/{github/prompts → commands/.github}/stats.prompt.md +163 -163
- lite_kits/kits/kits.yaml +497 -180
- lite_kits/kits/multiagent/README.md +6 -6
- lite_kits/kits/multiagent/{claude/commands → commands/.claude}/sync.md +331 -331
- lite_kits/kits/multiagent/{github/prompts → commands/.github}/sync.prompt.md +73 -69
- lite_kits/kits/multiagent/memory/git-worktrees-protocol.md +370 -370
- lite_kits/kits/multiagent/memory/parallel-work-protocol.md +536 -536
- lite_kits/kits/multiagent/memory/pr-workflow-guide.md +275 -275
- lite_kits/kits/multiagent/templates/collaboration-structure/README.md +166 -166
- lite_kits/kits/multiagent/templates/decision.md +79 -79
- lite_kits/kits/multiagent/templates/handoff.md +95 -95
- lite_kits/kits/multiagent/templates/session-log.md +68 -68
- lite_kits-0.3.1.dist-info/METADATA +259 -0
- lite_kits-0.3.1.dist-info/RECORD +41 -0
- {lite_kits-0.1.1.dist-info → lite_kits-0.3.1.dist-info}/licenses/LICENSE +21 -21
- lite_kits/kits/dev/claude/commands/commit.md +0 -612
- lite_kits/kits/dev/claude/commands/orient.md +0 -146
- lite_kits/kits/dev/claude/commands/pr.md +0 -593
- lite_kits/kits/dev/claude/commands/review.md +0 -202
- lite_kits/kits/dev/claude/commands/stats.md +0 -162
- lite_kits/kits/dev/github/prompts/audit.prompt.md +0 -143
- lite_kits/kits/dev/github/prompts/cleanup.prompt.md +0 -382
- lite_kits/kits/dev/github/prompts/commit.prompt.md +0 -591
- lite_kits/kits/dev/github/prompts/pr.prompt.md +0 -603
- lite_kits/kits/dev/github/prompts/review.prompt.md +0 -202
- lite_kits/kits/git/README.md +0 -365
- lite_kits/kits/git/claude/commands/cleanup.md +0 -361
- lite_kits/kits/git/scripts/bash/get-git-context.sh +0 -208
- lite_kits/kits/git/scripts/powershell/Get-GitContext.ps1 +0 -242
- lite_kits/kits/project/README.md +0 -228
- lite_kits/kits/project/claude/commands/audit.md +0 -143
- lite_kits/kits/project/claude/commands/review.md +0 -112
- lite_kits/kits/project/github/prompts/orient.prompt.md +0 -150
- lite_kits/kits/project/github/prompts/review.prompt.md +0 -112
- lite_kits/kits/project/github/prompts/stats.prompt.md +0 -163
- lite_kits-0.1.1.dist-info/METADATA +0 -447
- lite_kits-0.1.1.dist-info/RECORD +0 -58
- {lite_kits-0.1.1.dist-info → lite_kits-0.3.1.dist-info}/WHEEL +0 -0
- {lite_kits-0.1.1.dist-info → lite_kits-0.3.1.dist-info}/entry_points.txt +0 -0
@@ -1,242 +0,0 @@
|
|
1
|
-
#Requires -Version 5.1
|
2
|
-
|
3
|
-
<#
|
4
|
-
.SYNOPSIS
|
5
|
-
Gathers comprehensive git repository context for AI agents.
|
6
|
-
|
7
|
-
.DESCRIPTION
|
8
|
-
Collects git status, branch information, recent commits, and change statistics
|
9
|
-
in a structured format suitable for AI agent orientation and commit workflows.
|
10
|
-
|
11
|
-
.PARAMETER IncludeCommits
|
12
|
-
Number of recent commits to include (default: 5)
|
13
|
-
|
14
|
-
.PARAMETER IncludeDiff
|
15
|
-
Include file diff statistics (default: true)
|
16
|
-
|
17
|
-
.PARAMETER Format
|
18
|
-
Output format: Object, Json, or Text (default: Object)
|
19
|
-
|
20
|
-
.EXAMPLE
|
21
|
-
Get-GitContext
|
22
|
-
Returns git context as PowerShell object
|
23
|
-
|
24
|
-
.EXAMPLE
|
25
|
-
Get-GitContext -Format Text | Write-Host
|
26
|
-
Displays formatted text output
|
27
|
-
|
28
|
-
.EXAMPLE
|
29
|
-
Get-GitContext -IncludeCommits 10 -Format Json
|
30
|
-
Returns last 10 commits as JSON
|
31
|
-
#>
|
32
|
-
|
33
|
-
[CmdletBinding()]
|
34
|
-
param(
|
35
|
-
[Parameter()]
|
36
|
-
[int]$IncludeCommits = 5,
|
37
|
-
|
38
|
-
[Parameter()]
|
39
|
-
[switch]$IncludeDiff,
|
40
|
-
|
41
|
-
[Parameter()]
|
42
|
-
[ValidateSet('Object', 'Json', 'Text')]
|
43
|
-
[string]$Format = 'Object'
|
44
|
-
)
|
45
|
-
|
46
|
-
# Check if we're in a git repository
|
47
|
-
if (-not (git rev-parse --git-dir 2>$null)) {
|
48
|
-
Write-Error "Not a git repository"
|
49
|
-
return
|
50
|
-
}
|
51
|
-
|
52
|
-
# Gather git context
|
53
|
-
$context = [PSCustomObject]@{
|
54
|
-
Branch = $null
|
55
|
-
CommitHash = $null
|
56
|
-
Status = @{
|
57
|
-
Staged = @()
|
58
|
-
Unstaged = @()
|
59
|
-
Untracked = @()
|
60
|
-
Counts = @{
|
61
|
-
Staged = 0
|
62
|
-
Unstaged = 0
|
63
|
-
Untracked = 0
|
64
|
-
}
|
65
|
-
}
|
66
|
-
RecentCommits = @()
|
67
|
-
Remote = @{
|
68
|
-
Url = $null
|
69
|
-
Ahead = 0
|
70
|
-
Behind = 0
|
71
|
-
Tracking = $null
|
72
|
-
}
|
73
|
-
Stats = @{
|
74
|
-
TotalFiles = 0
|
75
|
-
Insertions = 0
|
76
|
-
Deletions = 0
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
# Get current branch
|
81
|
-
$context.Branch = git branch --show-current
|
82
|
-
|
83
|
-
# Get current commit hash
|
84
|
-
$context.CommitHash = git rev-parse --short HEAD 2>$null
|
85
|
-
|
86
|
-
# Get git status
|
87
|
-
$statusLines = git status --porcelain
|
88
|
-
|
89
|
-
foreach ($line in $statusLines) {
|
90
|
-
if ($line) {
|
91
|
-
$statusCode = $line.Substring(0, 2)
|
92
|
-
$filePath = $line.Substring(3)
|
93
|
-
|
94
|
-
# Staged files (first character)
|
95
|
-
if ($statusCode[0] -match '[MADRC]') {
|
96
|
-
$context.Status.Staged += [PSCustomObject]@{
|
97
|
-
Status = $statusCode[0]
|
98
|
-
Path = $filePath
|
99
|
-
}
|
100
|
-
$context.Status.Counts.Staged++
|
101
|
-
}
|
102
|
-
|
103
|
-
# Unstaged files (second character)
|
104
|
-
if ($statusCode[1] -match '[MD]') {
|
105
|
-
$context.Status.Unstaged += [PSCustomObject]@{
|
106
|
-
Status = $statusCode[1]
|
107
|
-
Path = $filePath
|
108
|
-
}
|
109
|
-
$context.Status.Counts.Unstaged++
|
110
|
-
}
|
111
|
-
|
112
|
-
# Untracked files
|
113
|
-
if ($statusCode -eq '??') {
|
114
|
-
$context.Status.Untracked += [PSCustomObject]@{
|
115
|
-
Path = $filePath
|
116
|
-
}
|
117
|
-
$context.Status.Counts.Untracked++
|
118
|
-
}
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
# Get remote tracking info
|
123
|
-
$tracking = git rev-parse --abbrev-ref --symbolic-full-name '@{u}' 2>$null
|
124
|
-
if ($tracking) {
|
125
|
-
$context.Remote.Tracking = $tracking
|
126
|
-
|
127
|
-
# Get ahead/behind counts
|
128
|
-
$aheadBehind = git rev-list --left-right --count HEAD...$tracking 2>$null
|
129
|
-
if ($aheadBehind) {
|
130
|
-
$parts = $aheadBehind -split '\s+'
|
131
|
-
$context.Remote.Ahead = [int]$parts[0]
|
132
|
-
$context.Remote.Behind = [int]$parts[1]
|
133
|
-
}
|
134
|
-
}
|
135
|
-
|
136
|
-
# Get remote URL
|
137
|
-
$remoteUrl = git remote get-url origin 2>$null
|
138
|
-
if ($remoteUrl) {
|
139
|
-
$context.Remote.Url = $remoteUrl
|
140
|
-
}
|
141
|
-
|
142
|
-
# Get recent commits
|
143
|
-
if ($IncludeCommits -gt 0) {
|
144
|
-
$commitFormat = '%H%x00%h%x00%an%x00%ae%x00%ad%x00%s'
|
145
|
-
$commitLines = git log -n $IncludeCommits --pretty=format:$commitFormat --date=relative
|
146
|
-
|
147
|
-
foreach ($line in $commitLines) {
|
148
|
-
if ($line) {
|
149
|
-
$parts = $line -split "`0", 6
|
150
|
-
$context.RecentCommits += [PSCustomObject]@{
|
151
|
-
Hash = $parts[0]
|
152
|
-
ShortHash = $parts[1]
|
153
|
-
Author = $parts[2]
|
154
|
-
Email = $parts[3]
|
155
|
-
Date = $parts[4]
|
156
|
-
Subject = $parts[5]
|
157
|
-
}
|
158
|
-
}
|
159
|
-
}
|
160
|
-
}
|
161
|
-
|
162
|
-
# Get diff statistics
|
163
|
-
if ($IncludeDiff -and $context.Status.Counts.Staged -gt 0) {
|
164
|
-
$diffStat = git diff --cached --numstat
|
165
|
-
|
166
|
-
foreach ($line in $diffStat) {
|
167
|
-
if ($line) {
|
168
|
-
$parts = $line -split '\s+', 3
|
169
|
-
$insertions = if ($parts[0] -eq '-') { 0 } else { [int]$parts[0] }
|
170
|
-
$deletions = if ($parts[1] -eq '-') { 0 } else { [int]$parts[1] }
|
171
|
-
|
172
|
-
$context.Stats.Insertions += $insertions
|
173
|
-
$context.Stats.Deletions += $deletions
|
174
|
-
$context.Stats.TotalFiles++
|
175
|
-
}
|
176
|
-
}
|
177
|
-
}
|
178
|
-
|
179
|
-
# Output based on format
|
180
|
-
switch ($Format) {
|
181
|
-
'Json' {
|
182
|
-
$context | ConvertTo-Json -Depth 10
|
183
|
-
}
|
184
|
-
'Text' {
|
185
|
-
# Formatted text output
|
186
|
-
Write-Output "==============================================================="
|
187
|
-
Write-Output "📊 Git Status (on: $($context.Branch)):"
|
188
|
-
Write-Output "==============================================================="
|
189
|
-
Write-Output "Staged: $($context.Status.Counts.Staged) files"
|
190
|
-
Write-Output "Unstaged: $($context.Status.Counts.Unstaged) files"
|
191
|
-
Write-Output "Untracked: $($context.Status.Counts.Untracked) files"
|
192
|
-
|
193
|
-
if ($context.Remote.Tracking) {
|
194
|
-
Write-Output ""
|
195
|
-
Write-Output "Remote: $($context.Remote.Tracking)"
|
196
|
-
if ($context.Remote.Ahead -gt 0) {
|
197
|
-
Write-Output " Ahead by $($context.Remote.Ahead) commit(s)"
|
198
|
-
}
|
199
|
-
if ($context.Remote.Behind -gt 0) {
|
200
|
-
Write-Output " Behind by $($context.Remote.Behind) commit(s)"
|
201
|
-
}
|
202
|
-
}
|
203
|
-
|
204
|
-
if ($context.Status.Staged.Count -gt 0) {
|
205
|
-
Write-Output ""
|
206
|
-
Write-Output "Staged files:"
|
207
|
-
foreach ($file in $context.Status.Staged) {
|
208
|
-
Write-Output " $($file.Status) $($file.Path)"
|
209
|
-
}
|
210
|
-
}
|
211
|
-
|
212
|
-
if ($context.Status.Unstaged.Count -gt 0) {
|
213
|
-
Write-Output ""
|
214
|
-
Write-Output "Unstaged files:"
|
215
|
-
foreach ($file in $context.Status.Unstaged) {
|
216
|
-
Write-Output " $($file.Status) $($file.Path)"
|
217
|
-
}
|
218
|
-
}
|
219
|
-
|
220
|
-
if ($context.Status.Untracked.Count -gt 0) {
|
221
|
-
Write-Output ""
|
222
|
-
Write-Output "Untracked files:"
|
223
|
-
foreach ($file in $context.Status.Untracked) {
|
224
|
-
Write-Output " ?? $($file.Path)"
|
225
|
-
}
|
226
|
-
}
|
227
|
-
|
228
|
-
if ($context.RecentCommits.Count -gt 0) {
|
229
|
-
Write-Output ""
|
230
|
-
Write-Output "Recent commits:"
|
231
|
-
foreach ($commit in $context.RecentCommits) {
|
232
|
-
Write-Output " $($commit.ShortHash) $($commit.Subject) ($($commit.Date))"
|
233
|
-
}
|
234
|
-
}
|
235
|
-
|
236
|
-
Write-Output "==============================================================="
|
237
|
-
}
|
238
|
-
default {
|
239
|
-
# Return PowerShell object
|
240
|
-
$context
|
241
|
-
}
|
242
|
-
}
|
lite_kits/kits/project/README.md
DELETED
@@ -1,228 +0,0 @@
|
|
1
|
-
# Project Kit
|
2
|
-
|
3
|
-
**Status**: ✅ Recommended (Default)
|
4
|
-
|
5
|
-
Essential project-level utilities and enhancements for vanilla spec-kit. Includes agent orientation, quality checks, and enhanced feature creation scripts.
|
6
|
-
|
7
|
-
## What It Adds
|
8
|
-
|
9
|
-
### Commands (AI Agents)
|
10
|
-
|
11
|
-
| Command | Claude Code | GitHub Copilot | Description |
|
12
|
-
|---------|-------------|----------------|-------------|
|
13
|
-
| `/orient` | ✅ | ✅ | Agent orientation protocol (most essential!) |
|
14
|
-
| `/audit` | 🚧 | 🚧 | Security & quality audit |
|
15
|
-
| `/stats` | 🚧 | 🚧 | Project statistics |
|
16
|
-
|
17
|
-
### Scripts (Enhanced Vanilla)
|
18
|
-
|
19
|
-
| Script | Bash | PowerShell | Description |
|
20
|
-
|--------|------|------------|-------------|
|
21
|
-
| Feature creation | 🚧 | 🚧 | Custom feature numbering/naming |
|
22
|
-
|
23
|
-
✅ = Implemented | 🚧 = Coming Soon
|
24
|
-
|
25
|
-
## Installation
|
26
|
-
|
27
|
-
### As part of recommended kits:
|
28
|
-
```bash
|
29
|
-
lite-kits install -Recommended # project + git
|
30
|
-
```
|
31
|
-
|
32
|
-
### Individually:
|
33
|
-
```bash
|
34
|
-
lite-kits install -Kit project
|
35
|
-
```
|
36
|
-
|
37
|
-
## What Gets Installed
|
38
|
-
|
39
|
-
```
|
40
|
-
your-project/
|
41
|
-
├── .claude/commands/ # If Claude Code detected
|
42
|
-
│ ├── orient.md # ✅ Essential!
|
43
|
-
│ ├── audit.md # 🚧 Coming Soon
|
44
|
-
│ └── stats.md # 🚧 Coming Soon
|
45
|
-
├── .github/prompts/ # If GitHub Copilot detected
|
46
|
-
│ ├── orient.prompt.md # ✅ Essential!
|
47
|
-
│ ├── audit.prompt.md # 🚧 Coming Soon
|
48
|
-
│ └── stats.prompt.md # 🚧 Coming Soon
|
49
|
-
└── .specify/scripts/ # Enhanced vanilla scripts
|
50
|
-
├── bash/
|
51
|
-
│ └── create-feature-enhanced.sh # 🚧 Coming Soon
|
52
|
-
└── powershell/
|
53
|
-
└── Create-Feature-Enhanced.ps1 # 🚧 Coming Soon
|
54
|
-
```
|
55
|
-
|
56
|
-
**Note**: Vanilla spec-kit files are **never modified** - only new files are added.
|
57
|
-
|
58
|
-
## Commands
|
59
|
-
|
60
|
-
### `/orient` - Agent Orientation ⭐ ESSENTIAL
|
61
|
-
|
62
|
-
**Purpose**: Help AI agents quickly understand project context before starting work.
|
63
|
-
|
64
|
-
**What it does**:
|
65
|
-
1. Reads `.github/copilot-instructions.md` (primary source)
|
66
|
-
2. Reads `.specify/memory/constitution.md` (project philosophy)
|
67
|
-
3. Checks current git state (branch, recent commits)
|
68
|
-
4. Reviews collaboration directories (if multiagent-kit installed)
|
69
|
-
5. Determines agent role (Claude = leader, Copilot = specialist)
|
70
|
-
6. Outputs concise summary (~150-200 words)
|
71
|
-
|
72
|
-
**Example usage**:
|
73
|
-
```
|
74
|
-
/orient
|
75
|
-
|
76
|
-
## Orientation Complete - Primary Agent
|
77
|
-
|
78
|
-
**I am**: claude-sonnet-4.5 @ Claude Code (Primary)
|
79
|
-
|
80
|
-
**Project**: Pip-installable add-on for spec-kit
|
81
|
-
|
82
|
-
**Stack**: Python 3.11+, typer, rich
|
83
|
-
|
84
|
-
**Principles**:
|
85
|
-
- Add-on pattern (no vanilla modifications)
|
86
|
-
- Cross-platform (Bash + PowerShell)
|
87
|
-
- Cross-agent (Claude + Copilot)
|
88
|
-
|
89
|
-
**State**: Branch dev/001-starter-kits, 3 files changed
|
90
|
-
|
91
|
-
**Coordination**: Solo work
|
92
|
-
|
93
|
-
**Next**: Implement project-kit structure
|
94
|
-
|
95
|
-
**Confirm?**: Ready to proceed?
|
96
|
-
```
|
97
|
-
|
98
|
-
**Why this is essential**: Every AI agent should run `/orient` at the start of each session to get up to speed quickly without wasting tokens.
|
99
|
-
|
100
|
-
---
|
101
|
-
|
102
|
-
### `/audit` - Security & Quality Audit (Coming Soon)
|
103
|
-
|
104
|
-
**Purpose**: Scan for security issues and quality problems.
|
105
|
-
|
106
|
-
**What it will do**:
|
107
|
-
- Scan for hardcoded secrets/credentials
|
108
|
-
- Check for common vulnerabilities (SQL injection, XSS, CSRF)
|
109
|
-
- Analyze dependencies for known CVEs
|
110
|
-
- Verify input validation
|
111
|
-
- Check file permissions
|
112
|
-
|
113
|
-
---
|
114
|
-
|
115
|
-
### `/stats` - Project Statistics (Coming Soon)
|
116
|
-
|
117
|
-
**Purpose**: Show project health metrics.
|
118
|
-
|
119
|
-
**What it will do**:
|
120
|
-
- Lines of code by language
|
121
|
-
- Test coverage percentage
|
122
|
-
- Git activity with agent attribution
|
123
|
-
- Complexity metrics
|
124
|
-
- Dependency count
|
125
|
-
- Health score
|
126
|
-
|
127
|
-
---
|
128
|
-
|
129
|
-
## Enhanced Scripts
|
130
|
-
|
131
|
-
### Feature Creation Enhancement (Coming Soon)
|
132
|
-
|
133
|
-
**Problem**: Vanilla `create-new-feature` script auto-generates feature numbers and uses first 3 words of description for naming.
|
134
|
-
|
135
|
-
**Enhancement**: Full control over feature numbering and naming.
|
136
|
-
|
137
|
-
**Usage** (planned):
|
138
|
-
```bash
|
139
|
-
# Vanilla (auto number, auto name from "Add user authentication system")
|
140
|
-
.specify/scripts/bash/create-new-feature.sh "Add user authentication system"
|
141
|
-
# Creates: 003-add-user-authentication
|
142
|
-
|
143
|
-
# Enhanced (custom number and name)
|
144
|
-
.specify/scripts/bash/create-feature-enhanced.sh --num 010 --name user-auth-v2 "Add user authentication system"
|
145
|
-
# Creates: 010-user-auth-v2
|
146
|
-
|
147
|
-
# Enhanced (custom number, auto name)
|
148
|
-
.specify/scripts/bash/create-feature-enhanced.sh --num 007 "Add user authentication system"
|
149
|
-
# Creates: 007-add-user-authentication
|
150
|
-
```
|
151
|
-
|
152
|
-
**Benefits**:
|
153
|
-
- Match feature numbers to issue/ticket numbers
|
154
|
-
- Use shorter, clearer names
|
155
|
-
- Support feature name conventions (e.g., `api-`, `ui-`, `db-` prefixes)
|
156
|
-
|
157
|
-
---
|
158
|
-
|
159
|
-
## Use Cases
|
160
|
-
|
161
|
-
### Solo Developer with AI Agent
|
162
|
-
**Install**: `--recommended` (includes project-kit)
|
163
|
-
**Use**: `/orient` at start of every session (essential!)
|
164
|
-
|
165
|
-
### Team with Multiple Agents
|
166
|
-
**Install**: `--recommended` + `--kit=multiagent`
|
167
|
-
**Use**: `/orient` at start of every session
|
168
|
-
|
169
|
-
### Security-Focused Project
|
170
|
-
**Install**: `--recommended`
|
171
|
-
**Use**: `/audit` regularly for security scans
|
172
|
-
|
173
|
-
### Custom Workflow Needs
|
174
|
-
**Install**: `--kit=project`
|
175
|
-
**Use**: Enhanced scripts for precise feature naming
|
176
|
-
|
177
|
-
---
|
178
|
-
|
179
|
-
## Configuration
|
180
|
-
|
181
|
-
No configuration needed - works out of the box.
|
182
|
-
|
183
|
-
**Optional customization**:
|
184
|
-
- Edit `.github/copilot-instructions.md` - Affects `/orient` output
|
185
|
-
- Edit `.specify/memory/constitution.md` - Project principles for `/review`
|
186
|
-
|
187
|
-
---
|
188
|
-
|
189
|
-
## Dependencies
|
190
|
-
|
191
|
-
**None** - project-kit is standalone.
|
192
|
-
|
193
|
-
**Note**: Works great with git-kit for complete workflow automation.
|
194
|
-
|
195
|
-
---
|
196
|
-
|
197
|
-
## Compatibility
|
198
|
-
|
199
|
-
- ✅ **Agents**: Claude Code, GitHub Copilot
|
200
|
-
- ✅ **Platforms**: Linux, macOS, Windows
|
201
|
-
- ✅ **Shells**: Bash, PowerShell
|
202
|
-
- ✅ **Vanilla safe**: Only adds new files, never modifies existing
|
203
|
-
|
204
|
-
---
|
205
|
-
|
206
|
-
## Uninstall
|
207
|
-
|
208
|
-
```bash
|
209
|
-
lite-kits remove -Kit project
|
210
|
-
```
|
211
|
-
|
212
|
-
Removes:
|
213
|
-
- `.claude/commands/{orient,audit,stats}.md`
|
214
|
-
- `.github/prompts/{orient,audit,stats}.prompt.md`
|
215
|
-
- `.specify/scripts/{bash,powershell}/create-feature-enhanced.{sh,ps1}`
|
216
|
-
|
217
|
-
---
|
218
|
-
|
219
|
-
## Future Enhancements
|
220
|
-
|
221
|
-
Considering for project-kit:
|
222
|
-
- `/docs` - Generate/update documentation
|
223
|
-
- `/history` - Show project timeline
|
224
|
-
- `/dependencies` - Dependency analysis
|
225
|
-
- `/performance` - Performance profiling
|
226
|
-
- Template library (api, cli, library, frontend feature templates)
|
227
|
-
|
228
|
-
Suggest more in [GitHub Discussions](https://github.com/tmorgan181/spec-kit-multiagent-lite/discussions).
|
@@ -1,143 +0,0 @@
|
|
1
|
-
---
|
2
|
-
description: Perform security analysis on dependencies and code patterns
|
3
|
-
---
|
4
|
-
|
5
|
-
# Security Audit Helper
|
6
|
-
|
7
|
-
**Purpose**: Quick security analysis for AI agents working on features involving authentication, data handling, or external dependencies.
|
8
|
-
|
9
|
-
## Execution Steps
|
10
|
-
|
11
|
-
Execute the following steps to perform a security audit:
|
12
|
-
|
13
|
-
### 1. Detect Project Type and Dependencies
|
14
|
-
|
15
|
-
```bash
|
16
|
-
# Check for Python dependencies
|
17
|
-
ls requirements.txt pyproject.toml setup.py 2>/dev/null
|
18
|
-
|
19
|
-
# Check for Node.js dependencies
|
20
|
-
ls package.json package-lock.json 2>/dev/null
|
21
|
-
|
22
|
-
# Check for Rust dependencies
|
23
|
-
ls Cargo.toml Cargo.lock 2>/dev/null
|
24
|
-
|
25
|
-
# Check for Go dependencies
|
26
|
-
ls go.mod go.sum 2>/dev/null
|
27
|
-
```
|
28
|
-
|
29
|
-
### 2. Run Dependency Vulnerability Scan
|
30
|
-
|
31
|
-
**Python projects**:
|
32
|
-
```bash
|
33
|
-
# Check if pip-audit is available
|
34
|
-
command -v pip-audit >/dev/null 2>&1
|
35
|
-
|
36
|
-
# If available, run scan
|
37
|
-
pip-audit
|
38
|
-
|
39
|
-
# If not available, suggest installation
|
40
|
-
echo "Install pip-audit: pip install pip-audit"
|
41
|
-
```
|
42
|
-
|
43
|
-
**Node.js projects**:
|
44
|
-
```bash
|
45
|
-
# npm audit is built-in
|
46
|
-
npm audit
|
47
|
-
|
48
|
-
# Or use yarn
|
49
|
-
yarn audit
|
50
|
-
```
|
51
|
-
|
52
|
-
**Other languages**: Suggest appropriate tools (cargo audit, go list, etc.)
|
53
|
-
|
54
|
-
### 3. Scan for Common Security Anti-Patterns
|
55
|
-
|
56
|
-
Check source code for security issues:
|
57
|
-
|
58
|
-
```bash
|
59
|
-
# Look for potential hardcoded secrets
|
60
|
-
grep -r "API_KEY\s*=\s*['\"]" src/ 2>/dev/null | head -5
|
61
|
-
grep -r "PASSWORD\s*=\s*['\"]" src/ 2>/dev/null | head -5
|
62
|
-
grep -r "SECRET\s*=\s*['\"]" src/ 2>/dev/null | head -5
|
63
|
-
|
64
|
-
# Look for weak crypto patterns (Python)
|
65
|
-
grep -r "md5\|sha1" src/ 2>/dev/null | head -5
|
66
|
-
|
67
|
-
# Look for SQL injection risks
|
68
|
-
grep -r "execute.*%\|execute.*+" src/ 2>/dev/null | head -5
|
69
|
-
```
|
70
|
-
|
71
|
-
**Common patterns to flag**:
|
72
|
-
- Hardcoded API keys, passwords, tokens
|
73
|
-
- Weak cryptographic algorithms (MD5, SHA1)
|
74
|
-
- SQL string concatenation
|
75
|
-
- Eval/exec with user input
|
76
|
-
- Insecure file permissions
|
77
|
-
|
78
|
-
### 4. Generate Concise Report
|
79
|
-
|
80
|
-
Provide analysis in this format (~150 words max):
|
81
|
-
|
82
|
-
```markdown
|
83
|
-
## Security Audit
|
84
|
-
|
85
|
-
**Dependencies**: N scanned, M vulnerabilities found
|
86
|
-
|
87
|
-
**Vulnerabilities** (if any):
|
88
|
-
- package-name==version: [SEVERITY] - Brief description
|
89
|
-
- Link to advisory for details
|
90
|
-
|
91
|
-
**Code Patterns** (if any):
|
92
|
-
- file.py:line: [PATTERN] - Recommendation
|
93
|
-
|
94
|
-
**Next Action**: [Fix CVE-XXXX / Update package / Review auth code]
|
95
|
-
```
|
96
|
-
|
97
|
-
## Important Notes
|
98
|
-
|
99
|
-
- **Graceful fallbacks**: If audit tools not installed, do basic pattern checks only
|
100
|
-
- **Be concise**: Target <150 words total output
|
101
|
-
- **Prioritize**: Show highest severity issues first
|
102
|
-
- **Avoid false positives**: Note that manual review may be needed
|
103
|
-
- **No dependencies**: Report "No dependencies to audit" gracefully
|
104
|
-
- **Cross-platform**: Use commands available on Windows, macOS, Linux
|
105
|
-
|
106
|
-
## Edge Cases
|
107
|
-
|
108
|
-
- **No dependency files**: "No dependencies found. This appears to be a dependency-free project."
|
109
|
-
- **Tool not installed**: Provide installation command, run basic grep checks
|
110
|
-
- **No vulnerabilities**: "✅ No known vulnerabilities found! Consider reviewing auth/data handling patterns."
|
111
|
-
- **Too many issues**: Sample top 5, note total count
|
112
|
-
|
113
|
-
## Example Output
|
114
|
-
|
115
|
-
```markdown
|
116
|
-
## Security Audit
|
117
|
-
|
118
|
-
**Dependencies**: 12 scanned, 2 vulnerabilities found
|
119
|
-
|
120
|
-
**Vulnerabilities**:
|
121
|
-
- requests==2.25.0: MEDIUM - CVE-2023-32681 (Proxy-Auth header leak)
|
122
|
-
Update to: requests>=2.31.0
|
123
|
-
|
124
|
-
**Code Patterns**:
|
125
|
-
- src/auth.py:42: Hardcoded API key detected
|
126
|
-
- src/db.py:103: SQL string concatenation (injection risk)
|
127
|
-
|
128
|
-
**Next Action**: Update requests package, move API key to environment variables, use parameterized queries
|
129
|
-
```
|
130
|
-
|
131
|
-
```markdown
|
132
|
-
## Security Audit
|
133
|
-
|
134
|
-
**Dependencies**: pip-audit not installed
|
135
|
-
|
136
|
-
**Tool Not Available**:
|
137
|
-
Install pip-audit for vulnerability scanning:
|
138
|
-
`pip install pip-audit`
|
139
|
-
|
140
|
-
**Code Patterns**: Basic grep checks performed, no obvious issues found
|
141
|
-
|
142
|
-
**Next Action**: Install pip-audit and re-run for comprehensive dependency scan
|
143
|
-
```
|