document-changes skill
Generates a structured markdown report documenting codebase changes including added, modified, and deleted files from the current session.
- GitHub 스타
- 45
- 파일
- 1
- 마지막 커밋
- 2026년 5월 31일
- 라이선스
- MIT
- 허용된 도구
- 6
document-changes skill은 무엇을 하나요?
document-changes은(는) agent skill입니다. Generates a structured markdown report documenting codebase changes including added, modified, and deleted files from the current session.
skill의 SKILL.md에서 생성된 요약입니다.
document-changes skill 정보
Creating structured documentation for codebase modifications is what this skill enables for developers working within git repositories. It automates the creation of markdown reports that detail added, modified, and deleted files, along with a summary of recent activity. An agent should load this tool when a user requests a session report, asks what they have changed, or needs to summarize work for a team review.
The process begins by validating the git environment and gathering metadata such as branch names, author information, and recent commit history. It analyzes staged, unstaged, and untracked changes to build a comprehensive overview. The tool relies on git commands to extract diff statistics and file statuses, then uses the Write tool to save the final markdown file. Users can provide a specific scope via arguments to influence the report filename and content, or allow the tool to infer the context from the repository state.
agent가 수행할 수 있는 작업
- 1Summarize recent commits for handoffRequest a summary of the last twenty commits to prepare documentation for a team review or handoff.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
document-changes skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 document-changes skill 설치
/plugin marketplace add sequenzia/agent-alchemy /plugin install agent-alchemy-dev-tools@agent-alchemy
Claude Code에 document-changes skill 설치
~/.claude/skills/document-changes/SKILL.md
$ npx degit sequenzia/agent-alchemy/claude/dev-tools/skills/document-changes ~/.claude/skills/document-changesClaude Code (project)에 document-changes skill 설치
.claude/skills/document-changes/SKILL.md
$ npx degit sequenzia/agent-alchemy/claude/dev-tools/skills/document-changes .claude/skills/document-changesCodex에 document-changes skill 설치
~/.agents/skills/document-changes/SKILL.md
$ npx degit sequenzia/agent-alchemy/claude/dev-tools/skills/document-changes ~/.agents/skills/document-changesGemini CLI에 document-changes skill 설치
~/.gemini/skills/document-changes/SKILL.md
$ npx degit sequenzia/agent-alchemy/claude/dev-tools/skills/document-changes ~/.gemini/skills/document-changesClaude.ai에 document-changes skill 설치
npx degit sequenzia/agent-alchemy/claude/dev-tools/skills/document-changes document-changes && zip -r document-changes.zip document-changes # claude.ai → Customize → Skills → + → Create skill → Upload a skill → document-changes.zip
SKILL.md
GitHub에서 보기Document Changes
Generate a structured markdown report documenting codebase changes from the current working session. The report captures files changed, commit history, and a human-readable summary suitable for team reviews, handoff documentation, or personal records.
Arguments
$ARGUMENTS— Optional scope or description for the report (e.g.,"auth refactor","add OAuth2 support"). Used to name the output file and populate the report's scope field. If not provided, scope is inferred from commit messages or changed file paths.
Workflow
Execute these 4 steps in order. Stop early if Step 1 or Step 2 determines there is nothing to report.
Step 1: Validate Git Repository
Verify the current directory is inside a git repository:
git rev-parse --is-inside-work-tree
- If the command fails or returns
false, stop and report: "Not inside a git repository. This skill requires git to gather change data." - If successful, continue to Step 2.
Step 2: Gather Changes and Metadata
Collect all change data by running these git commands. If any individual command fails, continue with the data that is available.
2.1 Repository Metadata
git branch --show-current
git config user.name
git remote get-url origin 2>/dev/null
date "+%Y-%m-%d %H:%M %Z"
2.2 Uncommitted Changes
git status --porcelain
git diff --stat
git diff --name-status
2.3 Staged Changes
git diff --cached --stat
git diff --cached --name-status
2.4 Recent Commits (up to 20)
git log --oneline -20
git log --format="%H|%s|%an|%ai" -20
2.5 Session Commit Diffs
If there are recent commits (N > 0 from Step 2.4):
git diff --stat HEAD~N..HEAD
git diff --name-status HEAD~N..HEAD
Replace N with the number of recent commits found (capped at 20). If the repo has fewer than N commits, use git diff --stat $(git rev-list --max-parents=0 HEAD)..HEAD instead.
2.6 Combine and Deduplicate
Build a unified list of all affected files from Steps 2.2–2.5, deduplicating entries. For each file, track:
- Status: Added (A), Modified (M), Deleted (D), Renamed (R)
- Source: Whether the change is committed, staged, unstaged, or untracked
Stop condition: If there are no uncommitted changes (Step 2.2 is empty), no staged changes (Step 2.3 is empty), and no recent commits (Step 2.4 is empty), stop and report: "No changes found in the current repository. Nothing to document."
Step 3: Determine Report Location
3.1 Generate Filename Description
Create a short kebab-case description (2-4 words) for the filename:
- If
$ARGUMENTSis provided: Convert to kebab-case (e.g.,"auth refactor"→auth-refactor) - If
$ARGUMENTSis not provided: Infer from the most common theme in commit messages or changed file paths (e.g.,api-bug-fixes,add-oauth2-support,ui-component-updates)
Build the recommended path: internal/reports/<description>-YYYY-MM-DD.md using today's date.
3.2 Ask User for Report Location
Use AskUserQuestion:
Where should the change report be saved?
Recommended: internal/reports/<description>-YYYY-MM-DD.md
Options:
- "Use recommended path (Recommended)" — Save to
internal/reports/<description>-YYYY-MM-DD.md - "Custom path" — User provides their own file path
If user selects "Custom path": Use a follow-up AskUserQuestion asking for the full file path.
3.3 Validate Path
- The path must end with
.md - If the parent directory does not exist, create it with
mkdir -p
Step 4: Generate and Write Report
Build the markdown report with the following structure, then write it using the Write tool.
Report Template
# Codebase Changes Report
## Metadata
| Field | Value |
|-------|-------|
| **Date** | YYYY-MM-DD |
| **Time** | HH:MM TZ |
| **Branch** | {current branch} |
| **Author** | {git user.name} |
| **Base Commit** | {earliest commit hash before session changes, or N/A} |
| **Latest Commit** | {most recent commit hash, or "uncommitted"} |
| **Repository** | {remote URL, or "local only"} |
**Scope**: {from $ARGUMENTS, or inferred from changes}
**Summary**: {1-2 sentence executive summary of what was done}
## Overview
{High-level stats paragraph}
- **Files affected**: N
- **Lines added**: +N
- **Lines removed**: -N
- **Commits**: N
## Files Changed
| File | Status | Lines | Description |
|------|--------|-------|-------------|
| `path/to/file.ts` | Modified | +12 / -3 | Brief description of changes |
| `path/to/new.ts` | Added | +45 | Brief description |
| `path/to/old.ts` | Deleted | -20 | Brief description |
## Change Details
### Added
- **`path/to/new.ts`** — Description of the new file and its purpose.
### Modified
- **`path/to/file.ts`** — What was changed and why (based on diff context).
### Deleted
- **`path/to/old.ts`** — Why it was removed or what replaced it.
## Git Status
### Staged Changes
{List of staged files from `git diff --cached --name-status`, or "No staged changes."}
### Unstaged Changes
{List of unstaged modifications from `git diff --name-status`, or "No unstaged changes."}
### Untracked Files
{List of untracked files from `git status --porcelain` (lines starting with `??`), or "No untracked files."}
## Session Commits
| Hash | Message | Author | Date |
|------|---------|--------|------|
| `abc1234` | feat: add login flow | Author Name | 2026-02-21 |
{Or "No commits in this session." if no recent commits}
Writing the Report
- If the parent directory does not exist, create it:
mkdir -p {parent_directory} - Use the
Writetool to create the report file at the chosen path. - If the write fails, report the error and use
AskUserQuestionto offer an alternative path.
Present Summary
After writing the report, present a brief summary of what was generated, then use AskUserQuestion:
Report written to {path}.
Summary: {1-2 sentence overview}
Files documented: N | Commits: N | Lines: +N / -N
What would you like to do next?
Options:
- "Review report" — Read the report back to the user using
Read - "Commit changes" — Suggest using
/git-committo commit outstanding changes - "Done" — End the workflow
Error Handling
| Scenario | Action |
|---|---|
| Not a git repo | Stop with clear message (Step 1) |
| No changes found | Stop with clear message (Step 2) |
| Individual git command fails | Continue with available data |
| Write fails | Offer alternative path via AskUserQuestion |
| Cannot determine scope | Use "session-changes" as the fallback description |
Section Guidelines
- Omit empty sections: If a section has no data (e.g., no deleted files, no untracked files), omit that section or subsection entirely rather than showing "None."
- File descriptions: Generate brief descriptions from diff context and file names. Keep each to one sentence.
- Commit hashes: Use short hashes (7 characters) in the report for readability.
- Line counts: Use
--statoutput to extract per-file line additions/deletions. If unavailable, omit the Lines column.
이 스킬의 파일
1document-changes skill 질문
Claude Code에 document-changes skill을 어떻게 설치하나요?
npx degit sequenzia/agent-alchemy/claude/dev-tools/skills/document-changes ~/.claude/skills/document-changes를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
document-changes skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
What information is included in the change report?
The report includes repository metadata, uncommitted changes, staged changes, recent commit history, and a detailed summary of added, modified, or deleted files.
What happens if the current directory is not a git repository?
The skill will stop and inform you that it requires git to gather change data.
Can I specify a custom name or scope for the report?
Yes, you can provide an optional scope or description which will be used to name the output file and populate the report's scope field.