Create semantic commits with conventional commit format and FABER metadata
Creates semantic commits with conventional commit format and FABER metadata.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-repo@fractary["message"] [--type <type>] [--work-id <id>] [--scope <scope>] [--breaking] [--description "<text>"]claude-haiku-4-5<CRITICAL_RULES> YOU MUST:
YOU MUST NOT:
COMMAND ISOLATION:
WHEN COMMANDS FAIL:
THIS COMMAND IS ONLY A ROUTER. </CRITICAL_RULES>
<WORKFLOW> 1. **Parse user input** - Extract commit message and options - Parse optional flags (type, work-id, scope, breaking, description) - Validate argumentsBuild structured request
ACTUALLY INVOKE the Task tool
Return response
<ARGUMENT_SYNTAX>
This command follows the space-separated argument syntax (consistent with work/repo plugin family):
--flag value (NOT --flag=value)--description "Optimized database queries" ✅--description Optimized database queries ❌Always use quotes for multi-word values:
✅ /repo:commit "Add CSV export feature" --type feat
✅ /repo:commit "Fix authentication bug" --work-id 123 --scope auth
✅ /repo:commit "Improve performance" --description "Optimized database queries"
❌ /repo:commit Add CSV export feature --type feat
❌ /repo:commit Fix authentication bug --work-id 123
Single-word values don't require quotes:
✅ /repo:commit "Add feature" --type feat
✅ /repo:commit "Fix bug" --work-id 123
✅ /repo:commit "Update docs" --scope api
Boolean flags have no value:
✅ /repo:commit "Breaking change" --breaking
✅ /repo:commit "Remove old API" --type feat --breaking
❌ /repo:commit "Breaking change" --breaking true
❌ /repo:commit "Remove old API" --breaking=true
Commit types are exact keywords:
feat, fix, chore, docs, style, refactor, perf, testfeature, bugfix, documentation
</ARGUMENT_SYNTAX><ARGUMENT_PARSING>
Purpose: Create semantic commit with conventional commit format
Optional Arguments:
message (string): Commit message summary, use quotes if multi-word (if not provided, will be auto-generated)--type (enum): Commit type following Conventional Commits. Must be one of: feat, fix, chore, docs, style, refactor, perf, test (default: feat)--work-id (string or number): Associated work item ID for tracking (e.g., "123", "PROJ-456")--scope (string): Scope/component of changes (e.g., "auth", "api", "ui"). Single word, no quotes needed--breaking (boolean flag): Mark as breaking change (adds BREAKING CHANGE footer). No value needed, just include the flag--description (string): Extended commit description/body, use quotes if multi-wordMaps to: create-commit
Example:
/repo:commit "Add CSV export" --type feat --work-id 123
→ Invoke agent with {"operation": "create-commit", "parameters": {"message": "Add CSV export", "type": "feat", "work_id": "123"}}
</ARGUMENT_PARSING>
<EXAMPLES> ## Usage Examples# Simple commit
/repo:commit "Fix authentication bug"
# Commit with type and work ID
/repo:commit "Add CSV export feature" --type feat --work-id 123
# Commit with scope
/repo:commit "Update API endpoints" --type refactor --scope api
# Breaking change
/repo:commit "Remove legacy auth" --type feat --breaking
# With extended description
/repo:commit "Improve performance" --type perf --description "Optimized database queries"
</EXAMPLES>
<AGENT_INVOCATION>
CRITICAL: After parsing arguments, you MUST actually invoke the Task tool. Do NOT just describe what should be done.
How to invoke: Use the Task tool with these parameters:
Example Task tool invocation:
Task(
subagent_type="fractary-repo:repo-manager",
description="Create semantic commit",
prompt='{
"operation": "create-commit",
"parameters": {
"message": "Add CSV export",
"type": "feat",
"work_id": "123",
"scope": "api",
"breaking": false,
"description": "Implements CSV export functionality"
}
}'
)
Request structure:
{
"operation": "create-commit",
"parameters": {
"message": "commit message",
"type": "feat|fix|chore|docs|style|refactor|perf|test",
"work_id": "123",
"scope": "scope",
"breaking": true|false,
"description": "extended description"
}
}
What the agent does:
DO NOT:
create-commit - Create semantic commit with FABER metadata
</AGENT_INVOCATION><ERROR_HANDLING> Common errors to handle:
Invalid commit type:
Error: Invalid commit type: invalid
Valid types: feat, fix, chore, docs, style, refactor, perf, test
No changes to commit:
Error: No changes staged for commit
Stage changes first: git add <files>
</ERROR_HANDLING>
<NOTES> ## Conventional CommitsThis command follows the Conventional Commits specification:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
When used within FABER workflows, commits automatically include FABER metadata and work item references.
This command works with:
Platform is configured via /repo:init and stored in .fractary/plugins/repo/config.json.
For detailed documentation, see: /docs/commands/repo-commit.md
Related commands:
/repo:branch - Manage branches/repo:push - Push changes/repo:pr - Create pull requests/repo:init - Configure repo plugin
</NOTES>