thoughtful-commitment
Git commits that capture context and intent
معلومات المصدر
- المستودع
- SimHacker/moollm
- آخر نشاط في المصدر
- ٧ فبراير ٢٠٢٦ في ١٤:٤٠
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ٦٠
- التفرعات
- ٥
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
مستكشف الملفات
8 ملفاتعرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- name
- thoughtful-commitment
- description
- Git commits that capture context and intent
- license
- MIT
- tier
- 2
- allowed-tools
- ["read_file","write_file","list_dir","run_terminal_cmd","grep"]
- protocol
- THOUGHTFUL-COMMITMENT
- related
- ["cursor-mirror","session-log","plain-text","yaml-jazz","git-workflow"]
- tags
- ["git","commits","provenance","introspection"]
# Thoughtful Commitment
> *Commits that capture context, not just changes.*
## Purpose
Git commits with traceability:
- What changed (git diff)
- Why it changed (cursor-mirror thinking)
- Who asked for it (user request)
- Session link for full context
## The Core Insight
Git and cursor-mirror are **two introspection systems** that mesh via commit IDs:
```
Git: "What changed?" → abc123
Cursor-Mirror: "Why?" → events 140-148
Thoughtful Commitment: Links them together
```
## Protocol: THOUGHTFUL-COMMITMENT
### Commit Message Format
```
<type>: <summary> (imperative, <50 chars)
<narrative>
What happened, from whose perspective, and why it matters.
Focus on intent and motivation, not just mechanics.
<changes>
- Bullet list of mechanical changes
- For quick scanning
<thinking-ref>
Thinking: cursor-mirror://<composer>/<event-range>
```
### Types
| Type | Use |
|------|-----|
| `feat` | New feature or capability |
| `fix` | Bug fix |
| `refactor` | Code restructuring (no behavior change) |
| `docs` | Documentation only |
| `style` | Formatting (no code change) |
| `test` | Adding or updating tests |
| `chore` | Maintenance tasks |
| *narrative* | Story beat, character change, world evolution |
For MOOLLM narratives, the type can be the story beat:
```
Incarnation Ceremony: Kittens receive emoji souls
Midnight Prowl: Cats explore the moonlit garden
Cat Council: Biscuit accepted into family
```
### Context Gathering
Before writing commits or PRs, gather existing messages to match style and avoid repetition:
```bash
# Recent commit messages (style reference)
git log --oneline -20
git log origin/main..HEAD --format='%s%n%b%n---'
# PR descriptions
gh pr view --json title,body
gh pr list --state merged -L 10 --json number,title
# Combined context
git log origin/main..HEAD --oneline && \
git diff origin/main --stat | tail -5
```
See `examples/git-commands.yml` → `context_gathering` for complete reference.
## Method Specifications
---
## Primary Introspection — Start Here
These are the entry points. Get the timeline, then drill down.
### TIMELINE
**The master view.** Shows all events with timestamps, types, and IDs.
**Input:**
```yaml
method: TIMELINE
parameters:
composer: string # Composer ID (@1, name fragment, hash)
limit: int # How many events (default: 50)
filter: string # Event type filter (thinking, tool, user, all)
since: string # Time filter ("1 hour ago", event ID)
```
**Process:**
```bash
cursor-mirror timeline <composer> --limit <n>
```
**Output:**
```
🤔💭 ⏱️ Session Timeline — e8587ace
#141 16:46:12 📍 user "Refactor auth module"
#142 16:46:15 🪟 context 3 files, ~4.2k tokens
#143 16:46:18 🧠 thinking "Need to check for race conditions..."
#144 16:46:22 🔧 tool Read auth/session.ts
#145 16:46:25 📤 result 247 lines loaded
#146 16:46:30 🧠 thinking "Found race condition on line 47..."
#147 16:46:35 💡 insight "Adding await fixes sequencing"
#148 16:46:40 🔧 tool Write auth/session.ts
#149 16:46:45 📝 change +3 -1 lines
→ Drill down: CONTEXT-FOCUS #142 | THINKING #143 | TOOLS #144
```
**Drill-down commands:**
- `CONTEXT-FOCUS #142` — What went into context at that point?
- `THINKING #143` — Full text of that thinking block
- `TOOLS #144-148` — Tool calls in that range
- `EXPLAIN #149` — Why was that change made?
The timeline is the **map**. Everything else is **zooming in**.
---
### CONTEXT-FOCUS
Analyze what went into the context window for a specific call. Shows the cursor state — what files, snippets, conversation, and rules were assembled.
**Input:**
```yaml
method: CONTEXT-FOCUS
parameters:
composer: string # Composer ID
event_id: string # Optional: specific event (default: latest)
```
**Process:**
```bash
# Get context sources for a composer
cursor-mirror context-sources <composer>
# Analyze what was in context at a specific event
cursor-mirror timeline <composer> --before <event_id> --type context
```
**Output:**
```
🤔💭 🪟 Context Window Analysis — event #142
Files read into context:
auth/session.ts 247 lines ████████████░░░░ 58%
auth/types.ts 89 lines ████░░░░░░░░░░░░ 21%
tests/auth.test.ts 156 lines ██████░░░░░░░░░░ 37%
Snippets:
session.ts:45-67 (highlighted by user)
Conversation turns: 12
Rules loaded: .cursorrules, workspace rules
Estimated tokens: ~4,200
Focus: auth module, session handling
```
The 🪟 tag marks context window analysis — showing what the LLM "saw" for this call.
---
### THINKING
Show reasoning blocks for an event or range.
**Input:**
```yaml
method: THINKING
parameters:
composer: string
event_id: string # Specific event
range: string # Or range like "143-146"
```
**Process:**
```bash
cursor-mirror thinking <composer> --event <id>
```
**Output:**
```
🤔💭 🧠 Thinking Block #143
"I need to understand the current structure of the auth module before
making changes. Let me read the session handling code first.
The user mentioned a race condition — I should look for any async
operations that might not be properly awaited. Common patterns to
check: cookie operations, token refresh, database calls..."
(247 chars, 16:46:18)
```
---
### TOOLS
Show tool calls for an event or session.
**Input:**
```yaml
method: TOOLS
parameters:
composer: string
event_id: string # Specific event, or omit for all
tool_filter: string # Filter by tool name (Read, Write, Shell, etc.)
```
**Process:**
```bash
cursor-mirror tools <composer>
cursor-mirror tools <composer> --filter Read
```
**Output:**
```
🤔💭 🔧 Tool Calls — session e8587ace
#144 Read auth/session.ts 247 lines
#148 Write auth/session.ts +3 -1
#150 Read auth/types.ts 89 lines
#152 Shell git diff --staged +3 -1 lines
#153 Write tests/auth.test.ts +45 new
Distribution: Read 42% | Write 28% | Shell 18% | Grep 12%
```
---
## Commit Operations
### COMMIT
Create a thoughtful commit.
**Input:**
```yaml
method: COMMIT
parameters:
files: [string] # Files to commit (or '.' for all)
summary: string # What changed (auto-detect if omitted)
include_thinking: bool # Link to cursor-mirror (default: true)
style: enum # technical (default) | changelog | pr | burke
```
**Styles:**
| Style | Use | Output |
|-------|-----|--------|
| `technical` | **Default.** Concise, factual | `fix: race condition in auth` + bullets |
| `changelog` | Release notes | User-facing changes grouped by type |
| `pr` | Pull request body | Summary, changes, test plan |
| `burke` | James Burke storytelling | Facet-to-facet connections, disco ball |
**Process:**
1. Stage specified files (`git add`)
2. Gather context from conversation
3. If `include_thinking`, query cursor-mirror for recent events
4. Generate commit message per protocol
5. Create commit (`git commit -m "..."`)
6. Return commit ID and message
**Output:**
```yaml
commit_id: "abc123"
message: "Full commit message..."
thinking_link: "cursor-mirror://def456/events/140-148"
```
### EXPLAIN
Find the thinking that led to an existing commit.
**Input:**
```yaml
method: EXPLAIN
parameters:
commit: string # Commit hash (full or abbreviated)
```
**Process:**
1. Get commit details (`git show --format=...`)
2. Extract timestamp
3. Search cursor-mirror for events around that time
4. Find the git commit tool call
5. Trace back to thinking blocks and user request
**Output:**
```yaml
commit_message: "Incarnation Ceremony: ..."
timestamp: "2026-01-15T19:30:00Z"
author: "Coherence Engine"
user_request: "Incarnate the kittens with emoji souls"
thinking_blocks:
- event_id: 141
content: "I need to invoke INCARNATION protocol..."
- event_id: 142
content: "Myrcene's terpene is sedating..."
tool_calls:
- event_id: 144
tool: write_file
args: {path: "kitten-myrcene/CHARACTER.yml"}
- event_id: 148
tool: git_commit
args: {message: "..."}
```
### MESSAGE
Generate a commit message from current context.
**Input:**
```yaml
method: MESSAGE
parameters:
diff_summary: string? # Optional (auto-detect from staged)
style: enum # technical (default) | changelog | pr | burke
detail: int # 1-5 (default: 3)
```
**Process:**
1. If no diff_summary, run `git diff --staged --stat`
2. Analyze conversation context for intent
3. Generate message per perspective and protocol
**Output:**
```yaml
message: "Full commit message..."
sections:
title: "Incarnation Ceremony: Kittens receive emoji souls"
body: "The Cat Cave family gathered..."
changes: ["Added emoji_identity...", "Added pronouns..."]
```
### LINK
Manually link a commit to cursor-mirror events.
**Input:**
```yaml
method: LINK
parameters:
commit: string # Commit hash
events: [string] # Event IDs from cursor-mirror
```
**Process:**
1. Validate commit exists
2. Validate events exist in cursor-mirror
3. Store link in `.moollm/skills/thoughtful-commitment/commit-links.yml`
**Output:**
```yaml
linked: true
reference: "cursor-mirror://abc123/events/140-148"
```
### HISTORY
Get narrative history of a file or directory.
**Input:**
```yaml
method: HISTORY
parameters:
path: string # File or directory
depth: int # Number of commits (default: 10)
include_thinking: bool # Include cursor-mirror links (default: true)
```
**Process:**
1. Get git log for path (`git log -n <depth> --format=... -- <path>`)
2. For each commit, attempt to find cursor-mirror link
3. Build narrative timeline
**Output:**
```yaml
timeline:
- commit: "abc123"
date: "2026-01-15"
message: "Incarnation Ceremony: ..."
thinking_link: "cursor-mirror://..."
summary: "Kittens received emoji souls"
- commit: "def456"
date: "2026-01-14"
message: "Initial character creation"
thinking_link: null
summary: "Created basic character files"
```
### DEEP-COMMIT
Technical analytics mining — extract quantitative metrics from cursor-mirror and git.
**When to use:**
- PR descriptions needing detailed appendices
- Post-mortem analysis of development sessions
- Documenting complex multi-hour sessions
- Generating reproducible verification commands
**Process:**
~~~bash
# 1. Raw metrics extraction
TRANSCRIPT="path/to/transcript.txt"
wc -l "$TRANSCRIPT" # line count
wc -c "$TRANSCRIPT" # byte count
grep -c "^\[Tool call\]" "$TRANSCRIPT" # tool calls
grep -c "^\[Thinking\]" "$TRANSCRIPT" # thinking blocks
grep -c "^user:" "$TRANSCRIPT" # user turns
# 2. Tool distribution
grep "^\[Tool call\]" "$TRANSCRIPT" | cut -d' ' -f3 | sort | uniq -c | sort -rn
# 3. Thinking block analysis
grep "^\[Thinking\]" "$TRANSCRIPT" | while read l; do echo ${#l}; done | \
sort -n | awk 'BEGIN{sum=0} {a[NR]=$1; sum+=$1} END{
printf "Count: %d\nMin: %d\nMax: %d\nAvg: %.0f\nMedian: %d\n",
NR, a[1], a[NR], sum/NR, a[int(NR/2)]
}'
# 4. Activity bursts
cursor-mirror timeline <composer> 2>&1 | \
grep -E "^[0-9]{4}-" | cut -d: -f1-2 | uniq -c
# 5. Git commit metrics
git log --oneline <range>
git diff --numstat <range> | awk '{ins+=$1; del+=$2} END{print ins, del}'
# 6. Word frequency in thinking
grep "^\[Thinking\]" "$TRANSCRIPT" | tr '[:upper:]' '[:lower:]' | \
tr -cs '[:alpha:]' '\n' | sort | uniq -c | sort -rn | head -20
~~~
عرض على GitHubملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub