opencode-skills-collection 1.0.172 → 1.0.174
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/bundled-skills/.antigravity-install-manifest.json +6 -1
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/global-chat-agent-discovery/SKILL.md +119 -0
- package/bundled-skills/multi-agent-task-orchestrator/SKILL.md +157 -0
- package/bundled-skills/protect-mcp-governance/SKILL.md +286 -0
- package/bundled-skills/python-pptx-generator/README.md +22 -0
- package/bundled-skills/python-pptx-generator/SKILL.md +106 -0
- package/bundled-skills/technical-change-tracker/SKILL.md +60 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"updatedAt": "2026-04-
|
|
3
|
+
"updatedAt": "2026-04-06T19:03:24.029Z",
|
|
4
4
|
"entries": [
|
|
5
5
|
"00-andruia-consultant",
|
|
6
6
|
"007",
|
|
@@ -625,6 +625,7 @@
|
|
|
625
625
|
"gitlab-automation",
|
|
626
626
|
"gitlab-ci-patterns",
|
|
627
627
|
"gitops-workflow",
|
|
628
|
+
"global-chat-agent-discovery",
|
|
628
629
|
"gmail-automation",
|
|
629
630
|
"go-concurrency-patterns",
|
|
630
631
|
"go-playwright",
|
|
@@ -851,6 +852,7 @@
|
|
|
851
852
|
"multi-advisor",
|
|
852
853
|
"multi-agent-brainstorming",
|
|
853
854
|
"multi-agent-patterns",
|
|
855
|
+
"multi-agent-task-orchestrator",
|
|
854
856
|
"multi-cloud-architecture",
|
|
855
857
|
"multi-platform-apps-multi-platform",
|
|
856
858
|
"n8n-code-javascript",
|
|
@@ -995,6 +997,7 @@
|
|
|
995
997
|
"prompt-engineering",
|
|
996
998
|
"prompt-engineering-patterns",
|
|
997
999
|
"prompt-library",
|
|
1000
|
+
"protect-mcp-governance",
|
|
998
1001
|
"protocol-reverse-engineering",
|
|
999
1002
|
"pubmed-database",
|
|
1000
1003
|
"pydantic-ai",
|
|
@@ -1005,6 +1008,7 @@
|
|
|
1005
1008
|
"python-packaging",
|
|
1006
1009
|
"python-patterns",
|
|
1007
1010
|
"python-performance-optimization",
|
|
1011
|
+
"python-pptx-generator",
|
|
1008
1012
|
"python-pro",
|
|
1009
1013
|
"python-testing-patterns",
|
|
1010
1014
|
"qiskit",
|
|
@@ -1228,6 +1232,7 @@
|
|
|
1228
1232
|
"team-collaboration-issue",
|
|
1229
1233
|
"team-collaboration-standup-notes",
|
|
1230
1234
|
"team-composition-analysis",
|
|
1235
|
+
"technical-change-tracker",
|
|
1231
1236
|
"telegram",
|
|
1232
1237
|
"telegram-automation",
|
|
1233
1238
|
"telegram-bot-builder",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Jetski/Cortex + Gemini Integration Guide
|
|
3
|
-
description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1.
|
|
3
|
+
description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1.377+ skills."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Jetski/Cortex + Gemini: safe integration with 1,1.
|
|
6
|
+
# Jetski/Cortex + Gemini: safe integration with 1,1.377+ skills
|
|
7
7
|
|
|
8
8
|
This guide shows how to integrate the `antigravity-awesome-skills` repository with an agent based on **Jetski/Cortex + Gemini** (or similar frameworks) **without exceeding the model context window**.
|
|
9
9
|
|
|
@@ -23,7 +23,7 @@ Never do:
|
|
|
23
23
|
- concatenate all `SKILL.md` content into a single system prompt;
|
|
24
24
|
- re-inject the entire library for **every** request.
|
|
25
25
|
|
|
26
|
-
With over 1,1.
|
|
26
|
+
With over 1,1.377 skills, this approach fills the context window before user messages are even added, causing truncation.
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -20,7 +20,7 @@ This example shows one way to integrate **antigravity-awesome-skills** with a Je
|
|
|
20
20
|
- How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
|
|
21
21
|
- How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
|
|
22
22
|
|
|
23
|
-
This pattern avoids context overflow when you have 1,
|
|
23
|
+
This pattern avoids context overflow when you have 1,377+ skills installed.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -6,7 +6,7 @@ This document keeps the repository's GitHub-facing discovery copy aligned with t
|
|
|
6
6
|
|
|
7
7
|
Preferred positioning:
|
|
8
8
|
|
|
9
|
-
> Installable GitHub library of 1,
|
|
9
|
+
> Installable GitHub library of 1,377+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.
|
|
10
10
|
|
|
11
11
|
Key framing:
|
|
12
12
|
|
|
@@ -20,7 +20,7 @@ Key framing:
|
|
|
20
20
|
|
|
21
21
|
Preferred description:
|
|
22
22
|
|
|
23
|
-
> Installable GitHub library of 1,
|
|
23
|
+
> Installable GitHub library of 1,377+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.
|
|
24
24
|
|
|
25
25
|
Preferred homepage:
|
|
26
26
|
|
|
@@ -28,7 +28,7 @@ Preferred homepage:
|
|
|
28
28
|
|
|
29
29
|
Preferred social preview:
|
|
30
30
|
|
|
31
|
-
- use a clean preview image that says `1,
|
|
31
|
+
- use a clean preview image that says `1,377+ Agentic Skills`;
|
|
32
32
|
- mention Claude Code, Cursor, Codex CLI, and Gemini CLI;
|
|
33
33
|
- avoid dense text and tiny logos that disappear in social cards.
|
|
34
34
|
|
|
@@ -69,7 +69,7 @@ For manual updates, you need:
|
|
|
69
69
|
The update process refreshes:
|
|
70
70
|
- Skills index (`skills_index.json`)
|
|
71
71
|
- Web app skills data (`apps\web-app\public\skills.json`)
|
|
72
|
-
- All 1,
|
|
72
|
+
- All 1,377+ skills from the skills directory
|
|
73
73
|
|
|
74
74
|
## When to Update
|
|
75
75
|
|
|
@@ -12,7 +12,7 @@ Install the library into Claude Code, then invoke focused skills directly in the
|
|
|
12
12
|
|
|
13
13
|
## Why use this repo for Claude Code
|
|
14
14
|
|
|
15
|
-
- It includes 1,
|
|
15
|
+
- It includes 1,377+ skills instead of a narrow single-domain starter pack.
|
|
16
16
|
- It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow.
|
|
17
17
|
- It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata.
|
|
18
18
|
- It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin.
|
|
@@ -12,7 +12,7 @@ Install into the Gemini skills path, then ask Gemini to apply one skill at a tim
|
|
|
12
12
|
|
|
13
13
|
- It installs directly into the expected Gemini skills path.
|
|
14
14
|
- It includes both core software engineering skills and deeper agent/LLM-oriented skills.
|
|
15
|
-
- It helps new users get started with bundles and workflows rather than forcing a cold start from 1,
|
|
15
|
+
- It helps new users get started with bundles and workflows rather than forcing a cold start from 1,377+ files.
|
|
16
16
|
- It is useful whether you want a broad internal skill library or a single repo to test many workflows quickly.
|
|
17
17
|
|
|
18
18
|
## Install Gemini CLI Skills
|
|
@@ -18,7 +18,7 @@ Kiro is AWS's agentic AI IDE that combines:
|
|
|
18
18
|
|
|
19
19
|
Kiro's agentic capabilities are enhanced by skills that provide:
|
|
20
20
|
|
|
21
|
-
- **Domain expertise** across 1,
|
|
21
|
+
- **Domain expertise** across 1,377+ specialized areas
|
|
22
22
|
- **Best practices** from Anthropic, OpenAI, Google, Microsoft, and AWS
|
|
23
23
|
- **Workflow automation** for common development tasks
|
|
24
24
|
- **AWS-specific patterns** for serverless, infrastructure, and cloud architecture
|
|
@@ -14,7 +14,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of a full l
|
|
|
14
14
|
|
|
15
15
|
When you ran `npx antigravity-awesome-skills` or cloned the repository, you:
|
|
16
16
|
|
|
17
|
-
✅ **Downloaded 1,
|
|
17
|
+
✅ **Downloaded 1,377+ skill files** to your computer (default: `~/.gemini/antigravity/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
|
|
18
18
|
✅ **Made them available** to your AI assistant
|
|
19
19
|
❌ **Did NOT enable them all automatically** (they're just sitting there, waiting)
|
|
20
20
|
|
|
@@ -34,7 +34,7 @@ Bundles are **curated groups** of skills organized by role. They help you decide
|
|
|
34
34
|
|
|
35
35
|
**Analogy:**
|
|
36
36
|
|
|
37
|
-
- You installed a toolbox with 1,
|
|
37
|
+
- You installed a toolbox with 1,377+ tools (✅ done)
|
|
38
38
|
- Bundles are like **labeled organizer trays** saying: "If you're a carpenter, start with these 10 tools"
|
|
39
39
|
- You can either **pick skills from the tray** or install that tray as a focused marketplace bundle plugin
|
|
40
40
|
|
|
@@ -212,7 +212,7 @@ Let's actually use a skill right now. Follow these steps:
|
|
|
212
212
|
|
|
213
213
|
## Step 5: Picking Your First Skills (Practical Advice)
|
|
214
214
|
|
|
215
|
-
Don't try to use all 1,
|
|
215
|
+
Don't try to use all 1,377+ skills at once. Here's a sensible approach:
|
|
216
216
|
|
|
217
217
|
If you want a tool-specific starting point before choosing skills, use:
|
|
218
218
|
|
|
@@ -343,7 +343,7 @@ Usually no, but if your AI doesn't recognize a skill:
|
|
|
343
343
|
|
|
344
344
|
### "Can I load all skills into the model at once?"
|
|
345
345
|
|
|
346
|
-
No. Even though you have 1,
|
|
346
|
+
No. Even though you have 1,377+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
|
|
347
347
|
|
|
348
348
|
The intended pattern is:
|
|
349
349
|
|
|
@@ -34,7 +34,7 @@ antigravity-awesome-skills/
|
|
|
34
34
|
├── 📄 CONTRIBUTING.md ← Contributor workflow
|
|
35
35
|
├── 📄 CATALOG.md ← Full generated catalog
|
|
36
36
|
│
|
|
37
|
-
├── 📁 skills/ ← 1,
|
|
37
|
+
├── 📁 skills/ ← 1,377+ skills live here
|
|
38
38
|
│ │
|
|
39
39
|
│ ├── 📁 brainstorming/
|
|
40
40
|
│ │ └── 📄 SKILL.md ← Skill definition
|
|
@@ -47,7 +47,7 @@ antigravity-awesome-skills/
|
|
|
47
47
|
│ │ └── 📁 2d-games/
|
|
48
48
|
│ │ └── 📄 SKILL.md ← Nested skills also supported
|
|
49
49
|
│ │
|
|
50
|
-
│ └── ... (1,
|
|
50
|
+
│ └── ... (1,377+ total)
|
|
51
51
|
│
|
|
52
52
|
├── 📁 apps/
|
|
53
53
|
│ └── 📁 web-app/ ← Interactive browser
|
|
@@ -100,7 +100,7 @@ antigravity-awesome-skills/
|
|
|
100
100
|
|
|
101
101
|
```
|
|
102
102
|
┌─────────────────────────┐
|
|
103
|
-
│ 1,
|
|
103
|
+
│ 1,377+ SKILLS │
|
|
104
104
|
└────────────┬────────────┘
|
|
105
105
|
│
|
|
106
106
|
┌────────────────────────┼────────────────────────┐
|
|
@@ -201,7 +201,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill
|
|
|
201
201
|
│ ├── 📁 brainstorming/ │
|
|
202
202
|
│ ├── 📁 stripe-integration/ │
|
|
203
203
|
│ ├── 📁 react-best-practices/ │
|
|
204
|
-
│ └── ... (1,
|
|
204
|
+
│ └── ... (1,377+ total) │
|
|
205
205
|
└─────────────────────────────────────────┘
|
|
206
206
|
```
|
|
207
207
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: global-chat-agent-discovery
|
|
3
|
+
description: "Discover and search 18K+ MCP servers and AI agents across 6+ registries using Global Chat's cross-protocol directory and MCP server."
|
|
4
|
+
category: development
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: pumanitro/global-chat
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: "2026-04-06"
|
|
10
|
+
author: pumanitro
|
|
11
|
+
tags: [mcp, ai-agents, agent-discovery, agents-txt, a2a, developer-tools]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Global Chat Agent Discovery
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Global Chat is a cross-protocol AI agent discovery platform that aggregates MCP servers and AI agents from 6+ registries into a single searchable directory. This skill helps you find the right MCP server, A2A agent, or agents.txt endpoint for any task by searching across 18,000+ indexed entries. It also provides an MCP server (`@global-chat/mcp-server`) for programmatic access to the directory from any MCP-compatible client.
|
|
20
|
+
|
|
21
|
+
## When to Use This Skill
|
|
22
|
+
|
|
23
|
+
- Use when you need to find an MCP server for a specific capability (e.g., database access, file conversion, API integration)
|
|
24
|
+
- Use when evaluating which agent registries carry tools for your use case
|
|
25
|
+
- Use when you want to search across multiple protocols (MCP, A2A, agents.txt) simultaneously
|
|
26
|
+
- Use when setting up agent-to-agent communication and need to discover available endpoints
|
|
27
|
+
|
|
28
|
+
## How It Works
|
|
29
|
+
|
|
30
|
+
### Option 1: Use the MCP Server (Recommended for Agents)
|
|
31
|
+
|
|
32
|
+
Install the Global Chat MCP server to search the directory programmatically from Claude Code, Cursor, or any MCP client.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm install -g @global-chat/mcp-server
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Add to your MCP client configuration:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"global-chat": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": ["-y", "@global-chat/mcp-server"]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Then ask your agent to search for tools:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
Search Global Chat for MCP servers that handle PostgreSQL database queries.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Option 2: Use the Web Directory
|
|
58
|
+
|
|
59
|
+
Browse the full directory at [https://global-chat.io](https://global-chat.io):
|
|
60
|
+
|
|
61
|
+
1. Visit the search page and enter your query
|
|
62
|
+
2. Filter by protocol (MCP, A2A, agents.txt)
|
|
63
|
+
3. Filter by registry source
|
|
64
|
+
4. View server details, capabilities, and installation instructions
|
|
65
|
+
|
|
66
|
+
### Option 3: Validate Your agents.txt
|
|
67
|
+
|
|
68
|
+
If you maintain an `agents.txt` file, use the free validator:
|
|
69
|
+
|
|
70
|
+
1. Go to [https://global-chat.io/validate](https://global-chat.io/validate)
|
|
71
|
+
2. Enter your domain or paste your agents.txt content
|
|
72
|
+
3. Get instant feedback on format compliance and discoverability
|
|
73
|
+
|
|
74
|
+
## Examples
|
|
75
|
+
|
|
76
|
+
### Example 1: Find MCP Servers for a Task
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
You: "Find MCP servers that can convert PDF files to text"
|
|
80
|
+
Agent (via Global Chat MCP): Searching across 6 registries...
|
|
81
|
+
- @anthropic/pdf-tools (mcpservers.org) — PDF parsing and text extraction
|
|
82
|
+
- pdf-converter-mcp (mcp.so) — Convert PDF to text, markdown, or HTML
|
|
83
|
+
- ...
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Example 2: Discover A2A Agents
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
You: "What A2A agents are available for code review?"
|
|
90
|
+
Agent (via Global Chat MCP): Found 12 A2A agents for code review across 3 registries...
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Example 3: Check Agent Protocol Coverage
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
You: "How many registries list tools for Kubernetes management?"
|
|
97
|
+
Agent (via Global Chat MCP): 4 registries carry Kubernetes-related agents (23 total entries)...
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Best Practices
|
|
101
|
+
|
|
102
|
+
- Use the MCP server for automated workflows and agent-to-agent discovery
|
|
103
|
+
- Use the web directory for manual exploration and comparison
|
|
104
|
+
- Validate your agents.txt before publishing to ensure maximum discoverability
|
|
105
|
+
- Check multiple registries — coverage varies significantly by domain
|
|
106
|
+
|
|
107
|
+
## Common Pitfalls
|
|
108
|
+
|
|
109
|
+
- **Problem:** Search returns too many results
|
|
110
|
+
**Solution:** Add protocol or registry filters to narrow the scope
|
|
111
|
+
|
|
112
|
+
- **Problem:** MCP server not connecting
|
|
113
|
+
**Solution:** Ensure `npx` is available and run `npx -y @global-chat/mcp-server` manually first to verify
|
|
114
|
+
|
|
115
|
+
## Related Skills
|
|
116
|
+
|
|
117
|
+
- `@mcp-client` - For general MCP client setup and configuration
|
|
118
|
+
- `@agent-orchestration-multi-agent-optimize` - For orchestrating multiple discovered agents
|
|
119
|
+
- `@agent-memory-mcp` - For persisting discovered agent information across sessions
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-agent-task-orchestrator
|
|
3
|
+
description: "Route tasks to specialized AI agents with anti-duplication, quality gates, and 30-minute heartbeat monitoring"
|
|
4
|
+
category: agent-orchestration
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: milkomida77/guardian-agent-prompts
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: "2026-04-09"
|
|
10
|
+
author: milkomida77
|
|
11
|
+
tags: [multi-agent, orchestration, task-routing, quality-gates, anti-duplication]
|
|
12
|
+
tools: [claude, cursor, gemini]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Multi-Agent Task Orchestrator
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
A production-tested pattern for coordinating multiple AI agents through a single orchestrator. Instead of letting agents work independently (and conflict), one orchestrator decomposes tasks, routes them to specialists, prevents duplicate work, and verifies results before marking anything done. Battle-tested across 10,000+ tasks over 6 months.
|
|
20
|
+
|
|
21
|
+
## When to Use This Skill
|
|
22
|
+
|
|
23
|
+
- Use when you have 3+ specialized agents that need to coordinate on complex tasks
|
|
24
|
+
- Use when agents are doing duplicate or conflicting work
|
|
25
|
+
- Use when you need audit trails showing who did what and when
|
|
26
|
+
- Use when agent output quality is inconsistent and needs verification gates
|
|
27
|
+
|
|
28
|
+
## How It Works
|
|
29
|
+
|
|
30
|
+
### Step 1: Define the Orchestrator Identity
|
|
31
|
+
|
|
32
|
+
The orchestrator must know what it IS and what it IS NOT. This prevents it from doing work instead of delegating:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
You are the Task Orchestrator. You NEVER do specialized work yourself.
|
|
36
|
+
You decompose tasks, delegate to the right agent, prevent conflicts,
|
|
37
|
+
and verify quality before marking anything done.
|
|
38
|
+
|
|
39
|
+
WHAT YOU ARE NOT:
|
|
40
|
+
- NOT a code writer — delegate to code agents
|
|
41
|
+
- NOT a researcher — delegate to research agents
|
|
42
|
+
- NOT a tester — delegate to test agents
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
This "NOT-block" pattern reduces task drift by ~35% in production.
|
|
46
|
+
|
|
47
|
+
### Step 2: Build a Task Registry
|
|
48
|
+
|
|
49
|
+
Before assigning work, check if anyone is already doing this task:
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
import sqlite3
|
|
53
|
+
from difflib import SequenceMatcher
|
|
54
|
+
|
|
55
|
+
def check_duplicate(description, threshold=0.55):
|
|
56
|
+
conn = sqlite3.connect("task_registry.db")
|
|
57
|
+
c = conn.cursor()
|
|
58
|
+
c.execute("SELECT id, description, agent, status FROM tasks WHERE status IN ('pending', 'in_progress')")
|
|
59
|
+
for row in c.fetchall():
|
|
60
|
+
ratio = SequenceMatcher(None, description.lower(), row[1].lower()).ratio()
|
|
61
|
+
if ratio >= threshold:
|
|
62
|
+
return {"id": row[0], "description": row[1], "agent": row[2]}
|
|
63
|
+
return None
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 3: Route Tasks to Specialists
|
|
67
|
+
|
|
68
|
+
Use keyword scoring to match tasks to the best agent:
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
AGENTS = {
|
|
72
|
+
"code-architect": ["code", "implement", "function", "bug", "fix", "refactor", "api"],
|
|
73
|
+
"security-reviewer": ["security", "vulnerability", "audit", "cve", "injection"],
|
|
74
|
+
"researcher": ["research", "compare", "analyze", "benchmark", "evaluate"],
|
|
75
|
+
"doc-writer": ["document", "readme", "explain", "tutorial", "guide"],
|
|
76
|
+
"test-engineer": ["test", "coverage", "unittest", "pytest", "spec"],
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
def route_task(description):
|
|
80
|
+
scores = {}
|
|
81
|
+
for agent, keywords in AGENTS.items():
|
|
82
|
+
scores[agent] = sum(1 for kw in keywords if kw in description.lower())
|
|
83
|
+
return max(scores, key=scores.get) if max(scores.values()) > 0 else "code-architect"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Step 4: Enforce Quality Gates
|
|
87
|
+
|
|
88
|
+
Agent output is a CLAIM. Test output is EVIDENCE.
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
After agent reports completion:
|
|
92
|
+
1. Were files actually modified? (git diff --stat)
|
|
93
|
+
2. Do tests pass? (npm test / pytest)
|
|
94
|
+
3. Were secrets introduced? (grep for API keys, tokens)
|
|
95
|
+
4. Did the build succeed? (npm run build)
|
|
96
|
+
5. Were only intended files touched? (scope check)
|
|
97
|
+
|
|
98
|
+
Mark done ONLY after ALL checks pass.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Step 5: Run 30-Minute Heartbeats
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Every 30 minutes, ask:
|
|
105
|
+
1. "What have I DELEGATED in the last 30 minutes?"
|
|
106
|
+
2. If nothing → open the task backlog and assign the next task
|
|
107
|
+
3. Check for idle agents (no message in >30min on assigned task)
|
|
108
|
+
4. Relance idle agents or reassign their tasks
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Examples
|
|
112
|
+
|
|
113
|
+
### Example 1: Delegating a Code Task
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
[ORCHESTRATOR -> code-architect] TASK: Add rate limiting to /api/users
|
|
117
|
+
SCOPE: src/middleware/rate-limit.ts only
|
|
118
|
+
VERIFICATION: npm test -- --grep "rate-limit"
|
|
119
|
+
DEADLINE: 30 minutes
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Example 2: Handling a Duplicate
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
User asks: "Fix the login bug"
|
|
126
|
+
Registry check: Task #47 "Fix authentication bug" is IN_PROGRESS by security-reviewer
|
|
127
|
+
Decision: SKIP — similar task already assigned (78% match)
|
|
128
|
+
Action: Notify user of existing task, wait for completion
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Best Practices
|
|
132
|
+
|
|
133
|
+
- Always define NOT-blocks for every agent (what they must refuse to do)
|
|
134
|
+
- Use SQLite for the task registry (lightweight, no server needed)
|
|
135
|
+
- Set similarity threshold at 55% for anti-duplication (lower = too many false positives)
|
|
136
|
+
- Require evidence-based quality gates (not just agent claims)
|
|
137
|
+
- Log every delegation with: task ID, agent, scope, deadline, verification command
|
|
138
|
+
|
|
139
|
+
## Common Pitfalls
|
|
140
|
+
|
|
141
|
+
- **Problem:** Orchestrator starts doing work instead of delegating
|
|
142
|
+
**Solution:** Add explicit NOT-blocks and role boundaries
|
|
143
|
+
|
|
144
|
+
- **Problem:** Two agents modify the same file simultaneously
|
|
145
|
+
**Solution:** Task registry with file-level locking and queue system
|
|
146
|
+
|
|
147
|
+
- **Problem:** Agent claims "done" without actual changes
|
|
148
|
+
**Solution:** Quality gate checks git diff before accepting completion
|
|
149
|
+
|
|
150
|
+
- **Problem:** Tasks pile up without progress
|
|
151
|
+
**Solution:** 30-minute heartbeat catches stale assignments and reassigns
|
|
152
|
+
|
|
153
|
+
## Related Skills
|
|
154
|
+
|
|
155
|
+
- `@code-review` - For reviewing code changes after delegation
|
|
156
|
+
- `@test-driven-development` - For ensuring quality in agent output
|
|
157
|
+
- `@project-management` - For tracking multi-agent project progress
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: protect-mcp-governance
|
|
3
|
+
description: "Agent governance skill for MCP tool calls — Cedar policy authoring, shadow-to-enforce rollout, and Ed25519 receipt verification."
|
|
4
|
+
risk: safe
|
|
5
|
+
source: community
|
|
6
|
+
source_repo: scopeblind/scopeblind-gateway
|
|
7
|
+
source_type: official
|
|
8
|
+
date_added: "2026-04-05"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# MCP Agent Governance with protect-mcp
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
Guidance for governing AI agent tool calls using Cedar policies and Ed25519 signed receipts. This skill teaches how to write access-control policies for MCP servers, run them in shadow mode for observation, and verify the cryptographic audit trail.
|
|
16
|
+
|
|
17
|
+
## When to Use This Skill
|
|
18
|
+
|
|
19
|
+
- Use when you need to control which MCP tools an agent can call and under what conditions
|
|
20
|
+
- Use when you want a tamper-evident audit trail for agent tool executions
|
|
21
|
+
- Use when rolling out governance policies gradually (shadow mode first, then enforce)
|
|
22
|
+
- Use when authoring Cedar policies for MCP tool access control
|
|
23
|
+
- Use when verifying that a receipt or audit bundle has not been tampered with
|
|
24
|
+
|
|
25
|
+
## Do Not Use This Skill
|
|
26
|
+
|
|
27
|
+
- When you need general application security auditing (use `@security-auditor`)
|
|
28
|
+
- When you need to scan code for vulnerabilities (use `@security-audit`)
|
|
29
|
+
- When you need compliance framework guidance without agent-specific governance
|
|
30
|
+
|
|
31
|
+
## How It Works
|
|
32
|
+
|
|
33
|
+
protect-mcp intercepts MCP tool calls, evaluates them against Cedar policies (the same policy engine used by AWS Verified Permissions), and signs every decision as an Ed25519 receipt. The receipt is a cryptographic proof that a specific policy was evaluated against a specific tool call at a specific time.
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Agent → protect-mcp → Cedar policy evaluation → MCP Server
|
|
37
|
+
↓
|
|
38
|
+
Ed25519 signed receipt
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Three modes of operation:
|
|
42
|
+
|
|
43
|
+
1. **Shadow mode** (default) — logs decisions without blocking. Use this to observe what your policies would do before enforcing them.
|
|
44
|
+
2. **Enforce mode** — blocks tool calls that violate policy. Use after shadow-mode validation.
|
|
45
|
+
3. **Hooks mode** — integrates with Claude Code hooks for pre/post tool-call governance.
|
|
46
|
+
|
|
47
|
+
## Core Concepts
|
|
48
|
+
|
|
49
|
+
### Cedar Policies
|
|
50
|
+
|
|
51
|
+
Cedar is a policy language designed for authorization. Policies are evaluated locally via WASM — no network calls required.
|
|
52
|
+
|
|
53
|
+
```cedar
|
|
54
|
+
// Allow read-only file operations
|
|
55
|
+
permit(
|
|
56
|
+
principal,
|
|
57
|
+
action == Action::"call_tool",
|
|
58
|
+
resource
|
|
59
|
+
) when {
|
|
60
|
+
resource.tool_name in ["read_file", "list_directory", "search_files"]
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// Deny destructive operations
|
|
64
|
+
forbid(
|
|
65
|
+
principal,
|
|
66
|
+
action == Action::"call_tool",
|
|
67
|
+
resource
|
|
68
|
+
) when {
|
|
69
|
+
resource.tool_name in ["execute_command", "delete_file", "write_file"]
|
|
70
|
+
&& resource has args
|
|
71
|
+
&& resource.args.contains("rm -rf")
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Signed Receipts
|
|
76
|
+
|
|
77
|
+
Every policy decision produces a signed receipt:
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"payload": {
|
|
82
|
+
"type": "protectmcp:decision",
|
|
83
|
+
"tool_name": "read_file",
|
|
84
|
+
"decision": "allow",
|
|
85
|
+
"policy_digest": "sha256:9d0fd4c9e72c1d5d",
|
|
86
|
+
"issued_at": "2026-04-05T14:32:04.102Z",
|
|
87
|
+
"issuer_id": "sb:issuer:de073ae64e43"
|
|
88
|
+
},
|
|
89
|
+
"signature": {
|
|
90
|
+
"alg": "EdDSA",
|
|
91
|
+
"kid": "sb:issuer:de073ae64e43",
|
|
92
|
+
"sig": "2a3b5022..."
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The receipt format follows [IETF Internet-Draft draft-farley-acta-signed-receipts](https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/).
|
|
98
|
+
|
|
99
|
+
## Step-by-Step Guide
|
|
100
|
+
|
|
101
|
+
### 1. Initialize Governance for a Project
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Install and initialize hooks (Claude Code integration)
|
|
105
|
+
npx protect-mcp init-hooks
|
|
106
|
+
|
|
107
|
+
# Or run as a standalone MCP gateway
|
|
108
|
+
npx protect-mcp serve
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
This creates a `protect-mcp.config.json` and a starter Cedar policy in your project root.
|
|
112
|
+
|
|
113
|
+
### 2. Write Your First Policy
|
|
114
|
+
|
|
115
|
+
Create `policy.cedar` in your project:
|
|
116
|
+
|
|
117
|
+
```cedar
|
|
118
|
+
// Start permissive — allow everything in shadow mode
|
|
119
|
+
permit(
|
|
120
|
+
principal,
|
|
121
|
+
action == Action::"call_tool",
|
|
122
|
+
resource
|
|
123
|
+
);
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 3. Run in Shadow Mode (Observe First)
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Shadow mode is the default — logs decisions without blocking
|
|
130
|
+
npx protect-mcp --policy policy.cedar -- node your-mcp-server.js
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Review the shadow log to understand what your agent is doing before writing restrictive policies.
|
|
134
|
+
|
|
135
|
+
### 4. Tighten and Enforce
|
|
136
|
+
|
|
137
|
+
Once you understand the tool-call patterns, write specific policies:
|
|
138
|
+
|
|
139
|
+
```cedar
|
|
140
|
+
// Allow file reads, deny writes outside src/
|
|
141
|
+
permit(
|
|
142
|
+
principal,
|
|
143
|
+
action == Action::"call_tool",
|
|
144
|
+
resource
|
|
145
|
+
) when {
|
|
146
|
+
resource.tool_name == "read_file"
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
permit(
|
|
150
|
+
principal,
|
|
151
|
+
action == Action::"call_tool",
|
|
152
|
+
resource
|
|
153
|
+
) when {
|
|
154
|
+
resource.tool_name == "write_file"
|
|
155
|
+
&& resource has args
|
|
156
|
+
&& resource.args.path like "src/*"
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// Deny everything else
|
|
160
|
+
forbid(
|
|
161
|
+
principal,
|
|
162
|
+
action == Action::"call_tool",
|
|
163
|
+
resource
|
|
164
|
+
);
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Switch to enforce mode:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npx protect-mcp --policy policy.cedar --enforce -- node your-mcp-server.js
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### 5. Verify Receipts
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# Verify a single receipt
|
|
177
|
+
npx @veritasacta/verify receipt.json --key <public-key-hex>
|
|
178
|
+
|
|
179
|
+
# Verify an audit bundle (multiple receipts + keys)
|
|
180
|
+
npx @veritasacta/verify bundle.json --bundle
|
|
181
|
+
|
|
182
|
+
# Self-test the verifier (proves it works offline)
|
|
183
|
+
npx @veritasacta/verify --self-test
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Exit codes: `0` = signature valid (proven authentic), `1` = signature invalid (proven tampered), `2` = verifier error (malformed input).
|
|
187
|
+
|
|
188
|
+
## Examples
|
|
189
|
+
|
|
190
|
+
### Example 1: Governance for a Claude Code Session
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Initialize hooks
|
|
194
|
+
npx protect-mcp init-hooks
|
|
195
|
+
|
|
196
|
+
# Claude Code now generates a signed receipt for every tool call.
|
|
197
|
+
# Receipts are stored in .protect-mcp/receipts/
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Explanation:** After initialization, every tool call Claude Code makes is logged with a signed receipt. No tool calls are blocked (shadow mode).
|
|
201
|
+
|
|
202
|
+
### Example 2: Restrict a Production MCP Server
|
|
203
|
+
|
|
204
|
+
```cedar
|
|
205
|
+
// Only allow approved tools with rate limiting
|
|
206
|
+
permit(
|
|
207
|
+
principal,
|
|
208
|
+
action == Action::"call_tool",
|
|
209
|
+
resource
|
|
210
|
+
) when {
|
|
211
|
+
resource.tool_name in [
|
|
212
|
+
"get_customer",
|
|
213
|
+
"search_orders",
|
|
214
|
+
"list_products"
|
|
215
|
+
]
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
forbid(
|
|
219
|
+
principal,
|
|
220
|
+
action == Action::"call_tool",
|
|
221
|
+
resource
|
|
222
|
+
) when {
|
|
223
|
+
resource.tool_name in [
|
|
224
|
+
"delete_customer",
|
|
225
|
+
"modify_payment",
|
|
226
|
+
"execute_sql"
|
|
227
|
+
]
|
|
228
|
+
};
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**Explanation:** A production MCP server that serves customer data. Read-only operations are permitted; destructive operations are blocked.
|
|
232
|
+
|
|
233
|
+
### Example 3: Verify an Audit Bundle After an Incident
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# Export the session's audit bundle
|
|
237
|
+
npx protect-mcp export-bundle --session sess_abc123 --out audit.json
|
|
238
|
+
|
|
239
|
+
# Verify every receipt in the bundle
|
|
240
|
+
npx @veritasacta/verify audit.json --bundle
|
|
241
|
+
|
|
242
|
+
# Expected output:
|
|
243
|
+
# ✓ Bundle: VALID
|
|
244
|
+
# Total: 47
|
|
245
|
+
# Passed: 47
|
|
246
|
+
# Failed: 0
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Explanation:** After an incident, export the audit bundle and verify that no receipts have been tampered with. The bundle contains all receipts from the session plus the signing keys needed for verification.
|
|
250
|
+
|
|
251
|
+
## Best Practices
|
|
252
|
+
|
|
253
|
+
- ✅ **Do:** Start in shadow mode and observe before enforcing
|
|
254
|
+
- ✅ **Do:** Use `policy_digest` to track which policy version produced each decision
|
|
255
|
+
- ✅ **Do:** Store receipts alongside your application logs for correlation
|
|
256
|
+
- ✅ **Do:** Pin the verifier version when integrating into CI (`@veritasacta/verify@0.2.5`)
|
|
257
|
+
- ❌ **Don't:** Skip shadow mode and go straight to enforce in production
|
|
258
|
+
- ❌ **Don't:** Trust `claimed_issuer_tier` without independent verification
|
|
259
|
+
- ❌ **Don't:** Treat a valid signature as proof the signer is trustworthy — it only proves the receipt has not been tampered with since signing
|
|
260
|
+
|
|
261
|
+
## Troubleshooting
|
|
262
|
+
|
|
263
|
+
### Problem: Receipts fail verification with `no_public_key`
|
|
264
|
+
**Symptoms:** `npx @veritasacta/verify receipt.json` returns exit 2 with `no_public_key`
|
|
265
|
+
**Solution:** Provide the public key explicitly: `--key <64 hex chars>`. The receipt does not embed the public key by default. Check `protect-mcp.config.json` for the issuer's public key.
|
|
266
|
+
|
|
267
|
+
### Problem: Shadow mode shows unexpected denials
|
|
268
|
+
**Symptoms:** Shadow log shows `deny` decisions for tools you expected to be allowed
|
|
269
|
+
**Solution:** Check your Cedar policy ordering. Cedar evaluates `forbid` rules before `permit` rules — a broad `forbid` will override specific `permit` rules.
|
|
270
|
+
|
|
271
|
+
### Problem: Enforce mode blocks a legitimate tool call
|
|
272
|
+
**Symptoms:** Agent reports a tool call was denied after switching to enforce mode
|
|
273
|
+
**Solution:** Add the tool to your permit policy or switch back to shadow mode: remove `--enforce` flag. Review the receipt's `deny_reason` field for the specific policy violation.
|
|
274
|
+
|
|
275
|
+
## Related Skills
|
|
276
|
+
|
|
277
|
+
- `@security-auditor` — General security auditing and compliance
|
|
278
|
+
- `@security-audit` — Code vulnerability scanning
|
|
279
|
+
- `@mcp-development` — MCP server development patterns
|
|
280
|
+
|
|
281
|
+
## Additional Resources
|
|
282
|
+
|
|
283
|
+
- [protect-mcp on npm](https://www.npmjs.com/package/protect-mcp) — MIT licensed
|
|
284
|
+
- [Cedar Policy Language](https://www.cedarpolicy.com/) — AWS open-source policy engine
|
|
285
|
+
- [IETF Draft: Signed Receipts](https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/) — Receipt format specification
|
|
286
|
+
- [@veritasacta/verify](https://www.npmjs.com/package/@veritasacta/verify) — Apache-2.0 verifier, works offline
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Python PPTX Generator
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
An agent skill designed to generate complete, runnable Python scripts that build professional PowerPoint presentations using the `python-pptx` library. It transforms a simple topic request into a fully coded slide deck.
|
|
5
|
+
|
|
6
|
+
## System Prompt
|
|
7
|
+
You are an expert Python Developer and Executive Presentation Designer. Your objective is to write complete, error-free Python scripts using the `python-pptx` library to generate PowerPoint presentations. You do not just write code; you also generate the actual educational or business content for the slides based on the user's topic.
|
|
8
|
+
|
|
9
|
+
## Rules
|
|
10
|
+
1. **Library Constraint:** You must strictly use the `python-pptx` library. Assume the user will run `pip install python-pptx`.
|
|
11
|
+
2. **No Placeholders:** Never use filler text like "Insert text here" or "Lorem Ipsum." You must write actual, context-relevant bullet points for the presentation.
|
|
12
|
+
3. **Layout Standards:** Always utilize standard layouts (e.g., `prs.slide_layouts[0]` for Title slides, `prs.slide_layouts[1]` for Title & Content).
|
|
13
|
+
4. **Self-Contained Execution:** The script must import all necessary modules, create the presentation, populate the slides, save the file (e.g., `prs.save("output.pptx")`), and print a terminal success message.
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
1. **Intake:** Ask the user for the presentation topic, target audience, and desired number of slides if not provided.
|
|
17
|
+
2. **Content Structuring:** Silently draft the narrative arc (Title, Agenda, Main Points, Conclusion).
|
|
18
|
+
3. **Script Generation:** Output the final Python script inside a standard python code block.
|
|
19
|
+
|
|
20
|
+
## Example Usage
|
|
21
|
+
**User:** Create a 5-slide presentation on the basics of Machine Learning for a high school class.
|
|
22
|
+
**Agent:** [Generates the full Python script containing the content and `python-pptx` logic to build those 5 slides].
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: python-pptx-generator
|
|
3
|
+
description: "Generate complete Python scripts that build polished PowerPoint decks with python-pptx and real slide content."
|
|
4
|
+
category: development
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-04-06"
|
|
9
|
+
author: spideyashith
|
|
10
|
+
tags: [python, powerpoint, python-pptx, presentations, slide-decks]
|
|
11
|
+
tools: [claude, cursor, gemini, codex]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Python PPTX Generator
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Use this skill when the user wants a ready-to-run Python script that creates a PowerPoint presentation with `python-pptx`.
|
|
19
|
+
It focuses on turning a topic brief into a complete slide deck script with real slide content, sensible structure, and a working save step.
|
|
20
|
+
|
|
21
|
+
## When to Use This Skill
|
|
22
|
+
|
|
23
|
+
- Use when the user wants a Python script that generates a `.pptx` file automatically
|
|
24
|
+
- Use when the user needs slide content drafted and encoded directly into `python-pptx`
|
|
25
|
+
- Use when the user wants a quick presentation generator for demos, classes, or internal briefings
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
### Step 1: Collect the Deck Brief
|
|
30
|
+
|
|
31
|
+
Ask for the topic, audience, tone, and target number of slides if the request does not already include them.
|
|
32
|
+
If constraints are missing, pick conservative defaults and state them in the generated script comments.
|
|
33
|
+
|
|
34
|
+
### Step 2: Plan the Narrative Arc
|
|
35
|
+
|
|
36
|
+
Outline the deck before writing code:
|
|
37
|
+
|
|
38
|
+
1. Title slide
|
|
39
|
+
2. Agenda or context
|
|
40
|
+
3. Core teaching or business points
|
|
41
|
+
4. Summary or next steps
|
|
42
|
+
|
|
43
|
+
Keep the slide count realistic for the requested audience and avoid filler slides.
|
|
44
|
+
|
|
45
|
+
### Step 3: Generate the Python Script
|
|
46
|
+
|
|
47
|
+
Write a complete script that:
|
|
48
|
+
|
|
49
|
+
- imports `Presentation` from `python-pptx`
|
|
50
|
+
- creates the deck
|
|
51
|
+
- selects appropriate built-in layouts
|
|
52
|
+
- writes real titles and bullet points
|
|
53
|
+
- saves the file with a clear filename
|
|
54
|
+
- prints a success message after saving
|
|
55
|
+
|
|
56
|
+
### Step 4: Keep the Output Runnable
|
|
57
|
+
|
|
58
|
+
The final answer should be a Python code block that can run after installing `python-pptx`.
|
|
59
|
+
Avoid pseudocode, placeholders, or missing imports.
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
### Example 1: Educational Deck
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
User: Create a 5-slide presentation on the basics of machine learning for a high school class.
|
|
67
|
+
Output: A complete Python script that creates a title slide, overview, core concepts, examples, and recap.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Example 2: Business Briefing
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
User: Generate a 7-slide deck for sales leadership on Q2 pipeline risks and mitigation options.
|
|
74
|
+
Output: A python-pptx script with executive-friendly slide titles, concise bullets, and a final recommendations slide.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Best Practices
|
|
78
|
+
|
|
79
|
+
- ✅ Use standard `python-pptx` layouts unless the user asks for custom positioning
|
|
80
|
+
- ✅ Write audience-appropriate bullet points instead of placeholders
|
|
81
|
+
- ✅ Save the output file explicitly in the script, for example `output.pptx`
|
|
82
|
+
- ✅ Keep slide titles short and the bullet hierarchy readable
|
|
83
|
+
- ❌ Do not return partial snippets that require the user to assemble the rest
|
|
84
|
+
- ❌ Do not invent unsupported styling APIs without checking `python-pptx` capabilities
|
|
85
|
+
|
|
86
|
+
## Security & Safety Notes
|
|
87
|
+
|
|
88
|
+
- Install `python-pptx` only in an environment you control, for example a local virtual environment
|
|
89
|
+
- If the user will run the script on a shared machine, choose a safe output path and avoid overwriting existing presentations without confirmation
|
|
90
|
+
- If the request includes proprietary or sensitive presentation content, keep it out of public examples and sample filenames
|
|
91
|
+
|
|
92
|
+
## Common Pitfalls
|
|
93
|
+
|
|
94
|
+
- **Problem:** The generated script uses placeholder text instead of real content
|
|
95
|
+
**Solution:** Draft the narrative first, then turn each slide into specific titles and bullets
|
|
96
|
+
|
|
97
|
+
- **Problem:** The deck uses too many slides for the requested audience
|
|
98
|
+
**Solution:** Compress the outline to the most important 4 to 8 slides unless the user explicitly wants a longer deck
|
|
99
|
+
|
|
100
|
+
- **Problem:** The script forgets to save or print a completion message
|
|
101
|
+
**Solution:** Always end with `prs.save(...)` and a short success print
|
|
102
|
+
|
|
103
|
+
## Related Skills
|
|
104
|
+
|
|
105
|
+
- `@pptx-official` - Use when the task is about inspecting or editing existing PowerPoint files
|
|
106
|
+
- `@docx-official` - Use when the requested output should be a document instead of a slide deck
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: technical-change-tracker
|
|
3
|
+
description: "Track code changes with structured JSON records, state machine enforcement, and AI session handoff for bot continuity"
|
|
4
|
+
category: development
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: Elkidogz/technical-change-skill
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: "2026-04-05"
|
|
10
|
+
author: Elkidogz
|
|
11
|
+
tags: [change-tracking, session-handoff, documentation, accessibility, state-machine]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Technical Change Tracker
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Track every code change with structured JSON records and accessible HTML output. Ensures AI bot sessions can resume seamlessly when previous sessions expire or are abandoned.
|
|
20
|
+
|
|
21
|
+
## When to Use This Skill
|
|
22
|
+
|
|
23
|
+
- Use when you need structured change tracking across AI coding sessions
|
|
24
|
+
- Use when a bot session expires mid-task and the next session needs full context to resume
|
|
25
|
+
- Use when onboarding a project with undocumented change history
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
### State Machine
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
planned -> in_progress -> implemented -> tested -> deployed
|
|
33
|
+
|
|
|
34
|
+
+-> blocked
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Commands
|
|
38
|
+
|
|
39
|
+
`/tc init` | `/tc create` | `/tc update` | `/tc status` | `/tc resume` | `/tc close` | `/tc export` | `/tc dashboard` | `/tc retro`
|
|
40
|
+
|
|
41
|
+
### Session Handoff
|
|
42
|
+
|
|
43
|
+
Each TC stores: progress summary, next steps, blockers, key context, and files in progress — so the next bot session picks up exactly where the last left off.
|
|
44
|
+
|
|
45
|
+
### Non-Blocking
|
|
46
|
+
|
|
47
|
+
TC bookkeeping runs via background subagents. Never interrupts coding work.
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- Structured JSON records with append-only revision history
|
|
52
|
+
- Test cases with log snippet evidence
|
|
53
|
+
- WCAG AA+ accessible HTML output (dark theme, rem-based fonts)
|
|
54
|
+
- CSS-only dashboard with status filters
|
|
55
|
+
- Python stdlib only — zero external dependencies
|
|
56
|
+
- Retroactive bulk creation from git history via `/tc retro`
|
|
57
|
+
|
|
58
|
+
## Full Repository
|
|
59
|
+
|
|
60
|
+
https://github.com/Elkidogz/technical-change-skill — MIT License
|
package/package.json
CHANGED