@adonis0123/weekly-report 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-skill.json +46 -0
- package/LICENSE +21 -0
- package/README.md +453 -0
- package/SKILL.md +174 -0
- package/install-skill.js +207 -0
- package/package.json +45 -0
- package/references/WEEKLY_REPORT_FORMAT.md +116 -0
- package/src/__init__.py +3 -0
- package/src/config_manager.py +171 -0
- package/src/date_utils.py +272 -0
- package/src/git_analyzer.py +342 -0
- package/src/report_generator.py +257 -0
- package/src/storage.py +491 -0
- package/uninstall-skill.js +118 -0
- package/utils.js +94 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "weekly-report",
|
|
3
|
+
"version": "1.0.6",
|
|
4
|
+
"package": "@adonis0123/weekly-report",
|
|
5
|
+
"files": {
|
|
6
|
+
"references": "references/",
|
|
7
|
+
"src": "src/"
|
|
8
|
+
},
|
|
9
|
+
"targets": {
|
|
10
|
+
"claude-code": {
|
|
11
|
+
"enabled": true,
|
|
12
|
+
"paths": {
|
|
13
|
+
"global": ".claude/skills",
|
|
14
|
+
"project": ".claude/skills"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"cursor": {
|
|
18
|
+
"enabled": true,
|
|
19
|
+
"paths": {
|
|
20
|
+
"global": ".cursor/skills",
|
|
21
|
+
"project": ".cursor/skills"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"windsurf": {
|
|
25
|
+
"enabled": false,
|
|
26
|
+
"paths": {
|
|
27
|
+
"global": ".windsurf/skills",
|
|
28
|
+
"project": ".windsurf/skills"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"aider": {
|
|
32
|
+
"enabled": false,
|
|
33
|
+
"paths": {
|
|
34
|
+
"global": ".aider/skills",
|
|
35
|
+
"project": ".aider/skills"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"custom": {
|
|
39
|
+
"enabled": false,
|
|
40
|
+
"paths": {
|
|
41
|
+
"global": ".ai-skills",
|
|
42
|
+
"project": ".ai-skills"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Agent Skill NPM Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
# Agent Skill NPM Boilerplate
|
|
2
|
+
|
|
3
|
+
> **Distribute AI agent skills like any other npm package**
|
|
4
|
+
|
|
5
|
+
AI coding tools (Claude Code, Cursor, Windsurf) support custom "skills" - reusable instructions that extend agent capabilities. But distributing them means manual file copying, no versioning, and painful updates.
|
|
6
|
+
|
|
7
|
+
**This template lets you publish skills to npm:**
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Install
|
|
11
|
+
npm install -g @your-org/git-commit-helper
|
|
12
|
+
|
|
13
|
+
# Update
|
|
14
|
+
npm update -g @your-org/git-commit-helper
|
|
15
|
+
|
|
16
|
+
# It just works - installs to ~/.claude/skills/, ~/.cursor/skills/, etc.
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Why this matters:** Skills become proper software artifacts with semantic versioning, dependency management, private registries, and global discovery. Same infrastructure that distributes React and Express.
|
|
20
|
+
|
|
21
|
+
[](https://opensource.org/licenses/MIT)
|
|
22
|
+
[](https://github.com/YOUR-USERNAME/agent-skill-npm-boilerplate/generate)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
**Quick start:** Fork this template, edit `SKILL.md`, run `npm publish`. Your skill is now installable worldwide.
|
|
27
|
+
|
|
28
|
+
**Supports:** [Claude Code](https://code.claude.com/docs/en/skills), Cursor, Windsurf, and any tool following similar skill patterns. See [MULTI-TOOL-SUPPORT.md](MULTI-TOOL-SUPPORT.md).
|
|
29
|
+
|
|
30
|
+
## 💡 Why npm for Skills?
|
|
31
|
+
|
|
32
|
+
Manual skill distribution requires downloading files, copying to `~/.claude/skills/`, and repeating for every update. No versioning, no dependency management, no discovery.
|
|
33
|
+
|
|
34
|
+
**npm solves this:**
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Install/update/uninstall with standard commands
|
|
38
|
+
npm install -g @your-org/skill-name
|
|
39
|
+
npm update -g @your-org/skill-name
|
|
40
|
+
npm uninstall -g @your-org/skill-name
|
|
41
|
+
|
|
42
|
+
# Semantic versioning for controlled updates
|
|
43
|
+
npm install @your-org/skill@^2.1.0
|
|
44
|
+
|
|
45
|
+
# Project-specific skills (version-locked, committed to git)
|
|
46
|
+
npm install --save-dev @your-org/skill-name
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Core benefits:**
|
|
50
|
+
- **Version control** - Semantic versioning, upgrade/rollback easily
|
|
51
|
+
- **Global distribution** - Publish once, available worldwide via npm's CDN
|
|
52
|
+
- **Discoverability** - Searchable on npmjs.com
|
|
53
|
+
- **Enterprise ready** - Private registries for internal skills
|
|
54
|
+
- **Ecosystem integration** - Works with CI/CD, monorepos, existing tooling
|
|
55
|
+
|
|
56
|
+
Skills become first-class software artifacts, using the same infrastructure as React, Express, and millions of other packages.
|
|
57
|
+
|
|
58
|
+
## ✨ Features
|
|
59
|
+
|
|
60
|
+
- ✅ **Official Specification**: Fully compliant with Claude Code skills format
|
|
61
|
+
- ✅ **Multi-Tool Support**: Install to Claude Code, Cursor, Windsurf, and more! (See [Multi-Tool Support](MULTI-TOOL-SUPPORT.md))
|
|
62
|
+
- ✅ **Smart Installation**: Auto-detects global vs project-level installation
|
|
63
|
+
- ✅ **Progressive Disclosure**: Supports main SKILL.md + reference files
|
|
64
|
+
- ✅ **Lifecycle Management**: Install, update, uninstall scripts included
|
|
65
|
+
- ✅ **Best Practices**: Follows all recommended patterns from official docs
|
|
66
|
+
- ✅ **Ready to Publish**: Just customize and publish to npm
|
|
67
|
+
|
|
68
|
+
## 🚀 Quick Start
|
|
69
|
+
|
|
70
|
+
### Option 1: Use as GitHub Template (Recommended)
|
|
71
|
+
|
|
72
|
+
This is a **GitHub Template Repository**. The easiest way to use it:
|
|
73
|
+
|
|
74
|
+
1. **Click the "Use this template" button** at the top of this repository (or [click here](https://github.com/YOUR-USERNAME/agent-skill-npm-boilerplate/generate))
|
|
75
|
+
2. **Name your new repository** (e.g., `my-awesome-skill`)
|
|
76
|
+
3. **Clone your new repository**:
|
|
77
|
+
```bash
|
|
78
|
+
git clone https://github.com/YOUR-USERNAME/my-awesome-skill.git
|
|
79
|
+
cd my-awesome-skill
|
|
80
|
+
```
|
|
81
|
+
4. **Customize your skill** (see [Customization Guide](#-customization-guide))
|
|
82
|
+
5. **Publish to npm**:
|
|
83
|
+
```bash
|
|
84
|
+
npm login
|
|
85
|
+
npm publish --access public
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Option 2: Clone Directly
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Clone this repository
|
|
92
|
+
git clone https://github.com/YOUR-USERNAME/agent-skill-npm-boilerplate.git my-skill
|
|
93
|
+
cd my-skill
|
|
94
|
+
|
|
95
|
+
# Remove git history and start fresh
|
|
96
|
+
rm -rf .git
|
|
97
|
+
git init
|
|
98
|
+
|
|
99
|
+
# Install dependencies (for development)
|
|
100
|
+
npm install
|
|
101
|
+
|
|
102
|
+
# Customize your skill
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 📁 Project Structure
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
agent-skill-npm-boilerplate/
|
|
109
|
+
├── package.json # npm package configuration
|
|
110
|
+
├── SKILL.md # Main skill definition (REQUIRED)
|
|
111
|
+
├── .claude-skill.json # Installation configuration
|
|
112
|
+
├── install-skill.js # Installation script
|
|
113
|
+
├── uninstall-skill.js # Uninstallation script
|
|
114
|
+
├── reference.md # Detailed documentation (optional)
|
|
115
|
+
├── examples.md # Usage examples (optional)
|
|
116
|
+
├── scripts/ # Utility scripts (optional)
|
|
117
|
+
│ ├── setup.sh # Post-install setup
|
|
118
|
+
│ └── config.json.example # Configuration template
|
|
119
|
+
├── README.md # This file (customize for your skill)
|
|
120
|
+
├── LICENSE # License file
|
|
121
|
+
└── .gitignore # Git ignore rules
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 🎨 Customization Guide
|
|
125
|
+
|
|
126
|
+
### Step 1: Update package.json
|
|
127
|
+
|
|
128
|
+
Replace the following placeholders:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"name": "@your-org/your-skill-name", // Change this
|
|
133
|
+
"version": "1.0.0",
|
|
134
|
+
"description": "YOUR SKILL DESCRIPTION", // Change this
|
|
135
|
+
"author": "YOUR NAME", // Change this
|
|
136
|
+
"repository": {
|
|
137
|
+
"url": "YOUR-REPO-URL" // Change this
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**About npm scopes:**
|
|
143
|
+
- Use a scope (`@your-org/skill-name`) if you want to organize skills under your organization
|
|
144
|
+
- Use no scope (`skill-name`) for standalone packages
|
|
145
|
+
- Popular scopes: `@your-company`, `@your-username`, or custom like `@claude-skills`
|
|
146
|
+
- Scopes require configuration: `npm config set @your-org:registry https://registry.npmjs.org/`
|
|
147
|
+
|
|
148
|
+
### Step 2: Update SKILL.md
|
|
149
|
+
|
|
150
|
+
Edit `SKILL.md` and replace placeholders:
|
|
151
|
+
|
|
152
|
+
```yaml
|
|
153
|
+
---
|
|
154
|
+
name: your-skill-name # Must match directory name
|
|
155
|
+
description: Your skill description here. Use when [scenarios].
|
|
156
|
+
allowed-tools: Read, Bash # Tools your skill can use
|
|
157
|
+
---
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Step 3: Update .claude-skill.json
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"name": "your-skill-name", // Must match SKILL.md name
|
|
165
|
+
"package": "@your-org/your-skill-name"
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Step 4: Add Your Logic
|
|
170
|
+
|
|
171
|
+
Edit the "Instructions" section in `SKILL.md`:
|
|
172
|
+
|
|
173
|
+
```markdown
|
|
174
|
+
## Instructions
|
|
175
|
+
|
|
176
|
+
When the user [describes scenario]:
|
|
177
|
+
|
|
178
|
+
1. **Step 1**: Do something
|
|
179
|
+
2. **Step 2**: Do something else
|
|
180
|
+
3. **Step 3**: Complete the task
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Step 5: Test Locally
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Test the installation script
|
|
187
|
+
node install-skill.js
|
|
188
|
+
|
|
189
|
+
# Check if installed correctly
|
|
190
|
+
ls -la ~/.claude/skills/your-skill-name/
|
|
191
|
+
cat ~/.claude/skills/your-skill-name/SKILL.md
|
|
192
|
+
|
|
193
|
+
# Open Claude Code and verify
|
|
194
|
+
# Ask Claude: "What skills are available?"
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Step 6: Publish to npm
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Login to npm (first time only)
|
|
201
|
+
npm login
|
|
202
|
+
|
|
203
|
+
# Publish your skill
|
|
204
|
+
npm publish --access public
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## 📖 Skill Development Best Practices
|
|
208
|
+
|
|
209
|
+
### 1. Write Clear Descriptions
|
|
210
|
+
|
|
211
|
+
The `description` field in SKILL.md is crucial - it determines when Claude uses your skill:
|
|
212
|
+
|
|
213
|
+
```yaml
|
|
214
|
+
# ❌ Bad: Too vague
|
|
215
|
+
description: Helps with files
|
|
216
|
+
|
|
217
|
+
# ✅ Good: Specific and includes trigger keywords
|
|
218
|
+
description: Analyzes TypeScript files for type errors. Use when checking types, debugging TypeScript issues, or validating .ts files.
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### 2. Use Progressive Disclosure
|
|
222
|
+
|
|
223
|
+
Keep SKILL.md under 500 lines. Put detailed content in separate files:
|
|
224
|
+
|
|
225
|
+
```markdown
|
|
226
|
+
# In SKILL.md
|
|
227
|
+
For complete API reference, see [reference.md](reference.md)
|
|
228
|
+
For examples, see [examples.md](examples.md)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Claude will only load these files when needed, saving context.
|
|
232
|
+
|
|
233
|
+
### 3. Limit Tool Access
|
|
234
|
+
|
|
235
|
+
Use `allowed-tools` to restrict what your skill can do:
|
|
236
|
+
|
|
237
|
+
```yaml
|
|
238
|
+
# Read-only skill
|
|
239
|
+
allowed-tools: Read, Grep, Glob
|
|
240
|
+
|
|
241
|
+
# Can read and execute (but not modify files)
|
|
242
|
+
allowed-tools: Read, Bash
|
|
243
|
+
|
|
244
|
+
# Full access
|
|
245
|
+
allowed-tools: Read, Edit, Write, Bash
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### 4. Include Examples
|
|
249
|
+
|
|
250
|
+
Show concrete examples in your SKILL.md:
|
|
251
|
+
|
|
252
|
+
```markdown
|
|
253
|
+
## Examples
|
|
254
|
+
|
|
255
|
+
### Example 1: Basic Usage
|
|
256
|
+
|
|
257
|
+
User asks: "Check my commit message"
|
|
258
|
+
|
|
259
|
+
Claude will:
|
|
260
|
+
1. Read the commit message
|
|
261
|
+
2. Validate format
|
|
262
|
+
3. Suggest improvements
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## 📦 Installation Behavior
|
|
266
|
+
|
|
267
|
+
### Global Installation (Recommended)
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
npm install -g @your-org/your-skill
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Installs to: `~/.claude/skills/your-skill-name/`
|
|
274
|
+
|
|
275
|
+
Available: Across all projects for the current user
|
|
276
|
+
|
|
277
|
+
### Project-Level Installation
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
npm install --save-dev @your-org/your-skill
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Installs to: `.claude/skills/your-skill-name/`
|
|
284
|
+
|
|
285
|
+
Available: Only in this project (can be committed to git)
|
|
286
|
+
|
|
287
|
+
### Priority Order
|
|
288
|
+
|
|
289
|
+
When multiple skills exist:
|
|
290
|
+
1. Enterprise (managed settings)
|
|
291
|
+
2. Personal (`~/.claude/skills/`)
|
|
292
|
+
3. Project (`.claude/skills/`)
|
|
293
|
+
4. Plugin
|
|
294
|
+
|
|
295
|
+
## How Installation and Uninstallation Work
|
|
296
|
+
|
|
297
|
+
This boilerplate includes automatic installation and uninstallation scripts that run when users install or remove your skill package via npm.
|
|
298
|
+
|
|
299
|
+
### Installation Process
|
|
300
|
+
|
|
301
|
+
When a user runs `npm install` (or `npm install -g`) on your skill package:
|
|
302
|
+
|
|
303
|
+
1. **Target Detection**: The script identifies which AI coding tools are configured for installation based on `.claude-skill.json`
|
|
304
|
+
2. **Scope Prefix Handling**: Extracts the actual skill name by removing any npm scope prefix (e.g., `@your-org/skill-name` becomes `skill-name`)
|
|
305
|
+
3. **Path Resolution**: For each target tool, it determines the appropriate installation location:
|
|
306
|
+
- Global installation: `~/{tool-path}/skills/` (user's home directory)
|
|
307
|
+
- Project installation: `./{tool-path}/skills/` (project root directory)
|
|
308
|
+
4. **Directory Setup**: Creates the skill directory using the skill name (without npm scope prefix)
|
|
309
|
+
5. **File Copying**: Copies essential files:
|
|
310
|
+
- `SKILL.md` (required) - The main skill definition
|
|
311
|
+
- Any additional files specified in `.claude-skill.json`
|
|
312
|
+
6. **Compatibility Cleanup**: Removes any legacy installation paths for backward compatibility
|
|
313
|
+
7. **Manifest Update**: Updates the `.skills-manifest.json` to track installed skills
|
|
314
|
+
8. **Post-install Hooks**: Runs any custom setup scripts defined in `.claude-skill.json`
|
|
315
|
+
|
|
316
|
+
### Uninstallation Process
|
|
317
|
+
|
|
318
|
+
When a user runs `npm uninstall` (or `npm uninstall -g`) on your skill package:
|
|
319
|
+
|
|
320
|
+
1. **Target Detection**: Identifies which AI coding tools were configured for the skill
|
|
321
|
+
2. **Scope Prefix Handling**: Uses both the skill name (without scope prefix) and full package name (with scope prefix) for compatibility
|
|
322
|
+
3. **Path Resolution**: Determines the appropriate uninstallation locations
|
|
323
|
+
4. **Directory Removal**: Removes the skill directory from all configured targets:
|
|
324
|
+
- Path using skill name (primary location)
|
|
325
|
+
- Path with full package name (legacy location for compatibility)
|
|
326
|
+
5. **Manifest Update**: Removes the skill entry from `.skills-manifest.json`
|
|
327
|
+
6. **Best-effort Cleanup**: Continues even if some steps fail to ensure clean removal
|
|
328
|
+
|
|
329
|
+
## 🔧 Advanced Features
|
|
330
|
+
|
|
331
|
+
### Custom Hooks
|
|
332
|
+
|
|
333
|
+
Run scripts during installation:
|
|
334
|
+
|
|
335
|
+
```json
|
|
336
|
+
// .claude-skill.json
|
|
337
|
+
{
|
|
338
|
+
"hooks": {
|
|
339
|
+
"postinstall": "bash scripts/setup.sh"
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Multiple Files
|
|
345
|
+
|
|
346
|
+
Support rich documentation:
|
|
347
|
+
|
|
348
|
+
```json
|
|
349
|
+
// .claude-skill.json
|
|
350
|
+
{
|
|
351
|
+
"files": {
|
|
352
|
+
"reference.md": "reference.md",
|
|
353
|
+
"examples.md": "examples.md",
|
|
354
|
+
"scripts": "scripts/"
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Configuration
|
|
360
|
+
|
|
361
|
+
Let users customize your skill:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# scripts/setup.sh
|
|
365
|
+
cat > scripts/config.json <<EOF
|
|
366
|
+
{
|
|
367
|
+
"option1": "default",
|
|
368
|
+
"option2": true
|
|
369
|
+
}
|
|
370
|
+
EOF
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## 🐛 Troubleshooting
|
|
374
|
+
|
|
375
|
+
### Skill Not Appearing
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Check installation location
|
|
379
|
+
ls -la ~/.claude/skills/
|
|
380
|
+
|
|
381
|
+
# Verify SKILL.md format
|
|
382
|
+
cat ~/.claude/skills/your-skill/SKILL.md
|
|
383
|
+
|
|
384
|
+
# Check manifest
|
|
385
|
+
cat ~/.claude/skills/.skills-manifest.json
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### Permission Errors
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# Fix npm permissions (recommended)
|
|
392
|
+
mkdir ~/.npm-global
|
|
393
|
+
npm config set prefix '~/.npm-global'
|
|
394
|
+
export PATH=~/.npm-global/bin:$PATH
|
|
395
|
+
|
|
396
|
+
# Or use sudo (not recommended)
|
|
397
|
+
sudo npm install -g @your-org/your-skill
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Skill Not Triggering
|
|
401
|
+
|
|
402
|
+
- Make sure the `description` includes keywords users would naturally say
|
|
403
|
+
- Test by asking Claude directly: "Use the your-skill-name skill to..."
|
|
404
|
+
|
|
405
|
+
## 📚 Resources
|
|
406
|
+
|
|
407
|
+
- [Claude Code Skills Documentation](https://code.claude.com/docs/en/skills)
|
|
408
|
+
- [Skills Best Practices](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/best-practices)
|
|
409
|
+
- [npm Package Publishing Guide](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry)
|
|
410
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
411
|
+
|
|
412
|
+
## 🤝 Contributing
|
|
413
|
+
|
|
414
|
+
Contributions are welcome! Please:
|
|
415
|
+
|
|
416
|
+
1. Fork this repository
|
|
417
|
+
2. Create a feature branch
|
|
418
|
+
3. Make your changes
|
|
419
|
+
4. Submit a pull request
|
|
420
|
+
|
|
421
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
|
422
|
+
|
|
423
|
+
## 📄 License
|
|
424
|
+
|
|
425
|
+
This template is [MIT licensed](LICENSE). Skills you create from this template can use any license you choose.
|
|
426
|
+
|
|
427
|
+
## 💡 Examples
|
|
428
|
+
|
|
429
|
+
Skills built with this template:
|
|
430
|
+
|
|
431
|
+
- `@your-org/git-commit-helper` - Generate conventional commit messages
|
|
432
|
+
- `@your-org/code-reviewer` - Automated code review assistance
|
|
433
|
+
- `@your-org/test-generator` - Generate test cases from code
|
|
434
|
+
|
|
435
|
+
*(Add your skill here after publishing!)*
|
|
436
|
+
|
|
437
|
+
## 🙋 Support
|
|
438
|
+
|
|
439
|
+
- **Issues**: [GitHub Issues](https://github.com/yourusername/agent-skill-npm-boilerplate/issues)
|
|
440
|
+
- **Discussions**: [GitHub Discussions](https://github.com/yourusername/agent-skill-npm-boilerplate/discussions)
|
|
441
|
+
- **Documentation**: [Wiki](https://github.com/yourusername/agent-skill-npm-boilerplate/wiki)
|
|
442
|
+
|
|
443
|
+
## 🌟 Show Your Support
|
|
444
|
+
|
|
445
|
+
If you find this template helpful:
|
|
446
|
+
- ⭐ Star this repository
|
|
447
|
+
- 🐛 Report bugs
|
|
448
|
+
- 💡 Suggest features
|
|
449
|
+
- 📝 Improve documentation
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
**Made with ❤️ for the Claude Code community**
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weekly-report
|
|
3
|
+
description: 自动读取 Git 提交记录生成周报。用于生成工作周报、项目总结、团队协作汇报。支持多仓库汇总。
|
|
4
|
+
allowed-tools: Read, Write, Bash(git:*), Bash(python:*)
|
|
5
|
+
metadata:
|
|
6
|
+
author: adonis
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 周报生成技能
|
|
11
|
+
|
|
12
|
+
自动读取 Git 提交记录,按项目分组生成结构化周报。
|
|
13
|
+
|
|
14
|
+
## 功能特性
|
|
15
|
+
|
|
16
|
+
- 自动读取 Git 提交记录
|
|
17
|
+
- 支持多仓库汇总
|
|
18
|
+
- 自动识别当前用户 (`git config user.name`)
|
|
19
|
+
- 按项目分组,生成结构化周报
|
|
20
|
+
- 过滤琐碎提交(typo、merge、format 等)
|
|
21
|
+
- 支持添加补充说明
|
|
22
|
+
- 周报统一存储在 `~/.weekly-reports/` 目录
|
|
23
|
+
|
|
24
|
+
## 使用方式
|
|
25
|
+
|
|
26
|
+
### 基本用法
|
|
27
|
+
|
|
28
|
+
在任意 Git 项目目录中执行:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/weekly-report
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 执行流程
|
|
35
|
+
|
|
36
|
+
1. **选择时间范围**
|
|
37
|
+
- 本周 (显示具体日期,如 2026-01-06 ~ 2026-01-12)
|
|
38
|
+
- 上周 (显示具体日期,如 2025-12-30 ~ 2026-01-05)
|
|
39
|
+
- 前半年 (显示具体日期,如 2025-07-13 ~ 2026-01-13)
|
|
40
|
+
- 自定义周报(输入周一日期)
|
|
41
|
+
- 自定义时间段(输入起始日期,截止到今天)
|
|
42
|
+
|
|
43
|
+
**重要**:选择时必须显示具体的日期范围,让用户确认是否正确
|
|
44
|
+
|
|
45
|
+
2. **选择仓库**(如已配置多仓库)
|
|
46
|
+
- 显示已配置的仓库列表
|
|
47
|
+
- 可多选要包含的仓库
|
|
48
|
+
- 可添加当前目录为新仓库
|
|
49
|
+
|
|
50
|
+
3. **添加补充内容**(可选)
|
|
51
|
+
- 输入额外的工作内容
|
|
52
|
+
- 如:参与会议、技术分享等
|
|
53
|
+
|
|
54
|
+
4. **生成周报**
|
|
55
|
+
- 读取选定仓库的 Git 提交(必须覆盖所有分支/远端跟踪分支,避免漏提交)
|
|
56
|
+
- 按项目分组
|
|
57
|
+
- 过滤琐碎提交
|
|
58
|
+
- 生成 Markdown 格式周报
|
|
59
|
+
- 周报保存到 `~/.weekly-reports/{year}/week-{week}.md`
|
|
60
|
+
- 时间段报告保存到 `~/.weekly-reports/periods/{start_date}_to_{end_date}.md`
|
|
61
|
+
|
|
62
|
+
## Git 提交读取(重要)
|
|
63
|
+
|
|
64
|
+
为避免“只读取当前分支而漏掉其它分支(例如 `credits-lite*`)”的问题,读取提交时必须使用 `--all`(覆盖本地分支 + 远端跟踪分支),并确保截止时间包含结束日当天:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# 关键点:
|
|
68
|
+
# - 用 --all 覆盖所有本地 refs(包含 remotes/origin/*)
|
|
69
|
+
# - --until 用 “结束日 23:59:59” 避免漏掉结束日当天提交
|
|
70
|
+
# - --author 建议用 name + email 联合匹配,避免不同身份写法漏掉本人提交
|
|
71
|
+
|
|
72
|
+
AUTHOR_PATTERN="(your-name|your@email.com)" # 或仅用你的 name/email
|
|
73
|
+
git log --all \
|
|
74
|
+
--author="$AUTHOR_PATTERN" \
|
|
75
|
+
--since="$START_DATE 00:00:00" \
|
|
76
|
+
--until="$END_DATE 23:59:59" \
|
|
77
|
+
--pretty=format:"%H|%s|%an|%ad" \
|
|
78
|
+
--date=short
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
如果 `git branch -a` 看不到目标远端分支(说明本地没有对应的远端跟踪引用),需要先 `git fetch --all --prune`(在用户同意且网络可用时执行),否则无法读取到“本地不存在的分支”的提交。
|
|
82
|
+
|
|
83
|
+
## 输出格式
|
|
84
|
+
|
|
85
|
+
周报采用层级列表结构,**必须包含日期范围标题**,按项目分组:
|
|
86
|
+
|
|
87
|
+
### 周报格式
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
# 周报 (2026-01-06 ~ 2026-01-12)
|
|
91
|
+
|
|
92
|
+
项目名称
|
|
93
|
+
- 主要工作点(10字以内)
|
|
94
|
+
- 补充说明(可选)
|
|
95
|
+
- 另一个工作点
|
|
96
|
+
|
|
97
|
+
其他
|
|
98
|
+
- 不属于特定项目的工作内容
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 时间段报告格式
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
# 工作总结 (2025-07-13 ~ 2026-01-13)
|
|
105
|
+
|
|
106
|
+
项目名称
|
|
107
|
+
- 主要工作点(10字以内)
|
|
108
|
+
- 补充说明(可选)
|
|
109
|
+
- 另一个工作点
|
|
110
|
+
|
|
111
|
+
其他
|
|
112
|
+
- 不属于特定项目的工作内容
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 示例输出
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
# 周报 (2026-01-06 ~ 2026-01-12)
|
|
119
|
+
|
|
120
|
+
project-frontend
|
|
121
|
+
- 构建工具升级改造
|
|
122
|
+
- 核心功能开发流程跟进
|
|
123
|
+
- 方案合理性优化
|
|
124
|
+
- 脚本国际化优化
|
|
125
|
+
|
|
126
|
+
project-backend
|
|
127
|
+
- 自定义类型化消息渲染
|
|
128
|
+
- 断线重连流程梳理
|
|
129
|
+
|
|
130
|
+
其他
|
|
131
|
+
- 新版国际化方案讨论
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 配置文件
|
|
135
|
+
|
|
136
|
+
配置文件位于 `~/.weekly-reports/config.json`:
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"repos": [
|
|
141
|
+
{
|
|
142
|
+
"name": "project-a",
|
|
143
|
+
"path": "/home/user/projects/project-a"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "project-b",
|
|
147
|
+
"path": "/home/user/projects/project-b"
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"default_author": "auto",
|
|
151
|
+
"output_format": "markdown"
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 总结原则
|
|
156
|
+
|
|
157
|
+
### 必须遵守
|
|
158
|
+
|
|
159
|
+
- **事实导向**:只总结实际完成的工作
|
|
160
|
+
- **简洁精炼**:主要工作点控制在 10 字以内
|
|
161
|
+
- **重点突出**:过滤琐碎修改
|
|
162
|
+
- **按项目分组**:相同项目的工作归类
|
|
163
|
+
- **层级清晰**:用缩进表示从属关系
|
|
164
|
+
|
|
165
|
+
### 过滤规则
|
|
166
|
+
|
|
167
|
+
以下提交不会单独列出:
|
|
168
|
+
- 纯格式化/代码风格调整
|
|
169
|
+
- 简单的 typo 修复
|
|
170
|
+
- 依赖版本小幅更新
|
|
171
|
+
- Merge 提交
|
|
172
|
+
- 重复性的相似提交
|
|
173
|
+
|
|
174
|
+
详细格式规范见 [周报格式规范](references/WEEKLY_REPORT_FORMAT.md)
|