sred-commit
Create a git commit with SR&ED (CRA tax credit) trailers. TRIGGERS - sred commit, sred, cra commit, tax credit commit, scientific research commit.
Works with
---
name: sred-commit
description: Create a git commit with SR&ED (CRA tax credit) trailers. TRIGGERS - sred commit, sred, cra commit, tax credit commit, scientific research commit.
license: MIT
---
# /mise:sred-commit
Create a git commit with SR&ED (Scientific Research & Experimental Development) trailers for Canada CRA tax credit compliance.
> **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
## Step 1: Understand Staged Changes
```bash
git diff --cached --stat
```
If nothing is staged, run `git status` and ask the user what to stage.
## Step 2: Draft the Commit Message
Write a commit message to `/tmp/sred-commit-msg.txt` following this format:
```
<type>(<scope>): <subject>
<body>
SRED-Type: <category>
SRED-Claim: <PROJECT-IDENTIFIER>
```
### Conventional Commit Types
| Type | When to Use |
| -------- | --------------------------------------- |
| feat | New feature or capability |
| fix | Bug fix |
| docs | Documentation only changes |
| style | Formatting, missing semicolons, etc. |
| refactor | Code change that neither fixes nor adds |
| perf | Performance improvement |
| test | Adding or correcting tests |
| build | Build system or external dependencies |
| ci | CI configuration files and scripts |
| chore | Maintenance tasks |
| revert | Reverting a previous commit |
### SR&ED Types (CRA Definitions)
| SRED-Type | CRA Definition |
| ------------------------ | ----------------------------------------------------------------- |
| experimental-development | Achieving technological advancement through systematic work |
| applied-research | Scientific knowledge with specific practical application in view |
| basic-research | Scientific knowledge without specific practical application |
| support-work | Programming, testing, data collection supporting SR&ED activities |
### SRED-Claim Format
Format: `PROJECT[-VARIANT]` (uppercase alphanumeric + hyphens).
To discover existing project identifiers in this repo:
```bash
git log --format='%(trailers:key=SRED-Claim,valueonly)' | sort -u | grep .
```
If no existing identifiers match, derive from the commit scope (e.g., `feat(my-feature):` → `MY-FEATURE`).
If unsure which SRED-Type or SRED-Claim to use, use `AskUserQuestion` to ask the user.
## Step 3: Validate
Run the validator on the draft message:
```bash
bun $HOME/.claude/plugins/marketplaces/cc-skills/plugins/itp-hooks/hooks/sred-commit-guard.ts --validate-message /tmp/sred-commit-msg.txt
```
Parse the JSON output:
- `{"valid": true}` → proceed to commit
- `{"valid": false, "errors": [...]}` → fix the message and re-validate
- If the output includes `"discovery"`, present the suggestions to the user via `AskUserQuestion`
## Step 4: Commit
```bash
git commit -F /tmp/sred-commit-msg.txt
```
Using `-F` avoids shell quoting issues with special characters in commit messages.
## Step 5: Clean Up
```bash
rm -f /tmp/sred-commit-msg.txt
```
Show the user the commit hash and summary.
## Post-Execution Reflection
After this skill completes, reflect before closing the task:
0. **Locate yourself.** — Find this SKILL.md's canonical path before editing.
1. **What failed?** — Fix the instruction that caused it.
2. **What worked better than expected?** — Promote to recommended practice.
3. **What drifted?** — Fix any script, reference, or dependency that no longer matches reality.
4. **Log it.** — Evolution-log entry with trigger, fix, and evidence.
Do NOT defer. The next invocation inherits whatever you leave behind.More Git Workflows skills
git-commit
github/awesome-copilot
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
git-workflow-and-versioning
addyosmani/agent-skills
Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, or when you need to organize work across multiple parallel streams. Use when cutting a release, choosing a semantic version bump, tagging, or writing a changelog.
resolve-merge-conflicts
warpdotdev/common-skills
Resolve Git merge conflicts by extracting only unresolved paths, conflict hunks, and compact diffs instead of loading whole files into context. Use when a merge, rebase, cherry-pick, or stash pop stops on conflicts, when `git status` shows unmerged paths, or when files contain conflict markers.

