Files
SuperCharged-Claude-Code-Up…/skills/plugins/examples/git-workflow/commands/smart-commit.ts
admin b723e2bd7d Reorganize: Move all skills to skills/ folder
- Created skills/ directory
- Moved 272 skills to skills/ subfolder
- Kept agents/ at root level
- Kept installation scripts and docs at root level

Repository structure:
- skills/           - All 272 skills from skills.sh
- agents/           - Agent definitions
- *.sh, *.ps1       - Installation scripts
- README.md, etc.   - Documentation

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-23 18:05:17 +00:00

62 lines
1.6 KiB
TypeScript

/**
* Git Smart Commit Command
* Creates intelligent commits with auto-staging and conventional commits
*/
import { exec } from 'child_process'
import { promisify } from 'util'
const execAsync = promisify(exec)
export interface SmartCommitOptions {
message?: string
type?: 'feat' | 'fix' | 'docs' | 'style' | 'refactor' | 'test' | 'chore'
scope?: string
stageAll?: boolean
amend?: boolean
}
export async function handle(
args: SmartCommitOptions,
context: any
): Promise<string> {
const { message, type = 'feat', scope, stageAll = true, amend = false } = args
try {
// Stage files if requested
if (stageAll && !amend) {
await execAsync('git add -A')
context.sandbox.log('Staged all changes')
}
// Generate commit message if not provided
let commitMessage = message
if (!commitMessage) {
// Get diff to generate intelligent message
const { stdout: diff } = await execAsync('git diff --cached --stat')
if (!diff || diff.trim().length === 0) {
return 'No changes to commit'
}
// Simple auto-generation based on diff
commitMessage = `${type}${scope ? `(${scope})` : ''}: `
commitMessage += 'update code based on changes'
}
// Create commit
const amendFlag = amend ? '--amend' : ''
const { stdout } = await execAsync(
`git commit ${amendFlag} -m "${commitMessage}"`
)
return `✓ Committed successfully:\n${stdout}`
} catch (error: any) {
throw new Error(`Git commit failed: ${error.message}`)
}
}
// Export for CLI usage
export default { handle }