ma-agents 1.2.0 → 1.4.0

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.
@@ -0,0 +1,211 @@
1
+ # Skill Creator
2
+
3
+ This skill provides guidance for creating effective skills.
4
+
5
+ ## About Skills
6
+
7
+ Skills are modular, self-contained packages that extend Claude's capabilities by providing
8
+ specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific
9
+ domains or tasks—they transform Claude from a general-purpose agent into a specialized agent
10
+ equipped with procedural knowledge that no model can fully possess.
11
+
12
+ ### What Skills Provide
13
+
14
+ 1. Specialized workflows - Multi-step procedures for specific domains
15
+ 2. Tool integrations - Instructions for working with specific file formats or APIs
16
+ 3. Domain expertise - Company-specific knowledge, schemas, business logic
17
+ 4. Bundled resources - Scripts, references, and assets for complex and repetitive tasks
18
+
19
+ ## Core Principles
20
+
21
+ ### Concise is Key
22
+
23
+ The context window is a public good. Skills share the context window with everything else Claude needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
24
+
25
+ **Default assumption: Claude is already very smart.** Only add context Claude doesn't already have. Challenge each piece of information: "Does Claude really need this explanation?" and "Does this paragraph justify its token cost?"
26
+
27
+ Prefer concise examples over verbose explanations.
28
+
29
+ ### Set Appropriate Degrees of Freedom
30
+
31
+ Match the level of specificity to the task's fragility and variability:
32
+
33
+ **High freedom (text-based instructions)**: Use when multiple approaches are valid, decisions depend on context, or heuristics guide the approach.
34
+
35
+ **Medium freedom (pseudocode or scripts with parameters)**: Use when a preferred pattern exists, some variation is acceptable, or configuration affects behavior.
36
+
37
+ **Low freedom (specific scripts, few parameters)**: Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
38
+
39
+ ### Anatomy of a Skill
40
+
41
+ Every skill consists of a `skill.json` metadata file, a `SKILL.md` instruction file, and optional bundled resources:
42
+
43
+ ```
44
+ skill-name/
45
+ ├── skill.json (required)
46
+ │ ├── name: (required)
47
+ │ ├── description: (required)
48
+ │ ├── version: (required)
49
+ │ ├── author: (optional)
50
+ │ └── tags: (optional)
51
+ ├── SKILL.md (required) - Pure Markdown instructions, NO frontmatter
52
+ └── Bundled Resources (optional)
53
+ ├── scripts/ - Executable code (Python/Bash/etc.)
54
+ ├── references/ - Documentation intended to be loaded into context as needed
55
+ ├── examples/ - Sample outputs showing expected format
56
+ ├── hooks/ - Git hooks or other hook scripts
57
+ └── assets/ - Files used in output (templates, icons, fonts, etc.)
58
+ ```
59
+
60
+ #### skill.json (required - single source of truth)
61
+
62
+ Contains all metadata. The installer reads this to list skills and automatically injects YAML frontmatter (`name`, `description`) into the installed SKILL.md at install time. You never write frontmatter manually in `.md` files.
63
+
64
+ ```json
65
+ {
66
+ "name": "My Skill",
67
+ "description": "What this skill does and when to use it",
68
+ "version": "1.0.0",
69
+ "author": "Your Name",
70
+ "tags": ["category", "keywords"]
71
+ }
72
+ ```
73
+
74
+ The `description` field is critical — it determines when the skill triggers. Include both what the skill does AND specific triggers/contexts.
75
+
76
+ #### SKILL.md (required)
77
+
78
+ Pure Markdown instructions — no YAML frontmatter. Only loaded AFTER the skill triggers based on the description in `skill.json`.
79
+
80
+ #### Bundled Resources (optional)
81
+
82
+ ##### Scripts (`scripts/`)
83
+
84
+ Executable code for tasks that require deterministic reliability or are repeatedly rewritten.
85
+
86
+ - **When to include**: When the same code is being rewritten repeatedly or deterministic reliability is needed
87
+ - **Benefits**: Token efficient, deterministic, may be executed without loading into context
88
+
89
+ ##### References (`references/`)
90
+
91
+ Documentation intended to be loaded as needed into context.
92
+
93
+ - **When to include**: For documentation that Claude should reference while working
94
+ - **Use cases**: Database schemas, API documentation, domain knowledge, company policies
95
+ - **Best practice**: If files are large (>10k words), include grep search patterns in SKILL.md
96
+ - **Avoid duplication**: Information lives in either SKILL.md or references files, not both
97
+
98
+ ##### Assets (`assets/`)
99
+
100
+ Files not intended to be loaded into context, but used within the output Claude produces.
101
+
102
+ - **When to include**: When the skill needs files for final output
103
+ - **Use cases**: Templates, images, icons, boilerplate code, fonts, sample documents
104
+
105
+ #### What NOT to Include
106
+
107
+ Do NOT create: README.md, INSTALLATION_GUIDE.md, QUICK_REFERENCE.md, CHANGELOG.md, or other auxiliary documentation. The skill should only contain information needed for an AI agent to execute tasks.
108
+
109
+ ### Progressive Disclosure Design Principle
110
+
111
+ Three-level loading system:
112
+
113
+ 1. **Metadata (name + description)** - Always in context (~100 words)
114
+ 2. **SKILL.md body** - When skill triggers (<5k words)
115
+ 3. **Bundled resources** - As needed by Claude (Unlimited)
116
+
117
+ Keep SKILL.md body under 500 lines. Split content into separate files when approaching this limit.
118
+
119
+ **Pattern 1: High-level guide with references**
120
+
121
+ ```markdown
122
+ # PDF Processing
123
+ ## Quick start
124
+ Extract text with pdfplumber: [code example]
125
+ ## Advanced features
126
+ - **Form filling**: See [FORMS.md](FORMS.md) for complete guide
127
+ - **API reference**: See [REFERENCE.md](REFERENCE.md) for all methods
128
+ ```
129
+
130
+ **Pattern 2: Domain-specific organization**
131
+
132
+ ```
133
+ bigquery-skill/
134
+ ├── SKILL.md (overview and navigation)
135
+ └── references/
136
+ ├── finance.md (revenue, billing metrics)
137
+ ├── sales.md (opportunities, pipeline)
138
+ └── product.md (API usage, features)
139
+ ```
140
+
141
+ **Pattern 3: Conditional details**
142
+
143
+ ```markdown
144
+ # DOCX Processing
145
+ ## Creating documents
146
+ Use docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).
147
+ ## Editing documents
148
+ For simple edits, modify the XML directly.
149
+ **For tracked changes**: See [REDLINING.md](REDLINING.md)
150
+ ```
151
+
152
+ ## Skill Creation Process
153
+
154
+ 1. Understand the skill with concrete examples
155
+ 2. Plan reusable skill contents (scripts, references, assets)
156
+ 3. Initialize the skill (run scripts/init_skill.py)
157
+ 4. Edit the skill (implement resources and write SKILL.md)
158
+ 5. Package the skill (run scripts/package_skill.py)
159
+ 6. Iterate based on real usage
160
+
161
+ ### Step 1: Understanding the Skill with Concrete Examples
162
+
163
+ Gather concrete examples of how the skill will be used. Ask users clarifying questions about functionality and triggers. Conclude when there's clear understanding of supported functionality.
164
+
165
+ ### Step 2: Planning the Reusable Skill Contents
166
+
167
+ Analyze each concrete example:
168
+ 1. Consider how to execute the example from scratch
169
+ 2. Identify what scripts, references, and assets would be helpful for repeated execution
170
+
171
+ ### Step 3: Initializing the Skill
172
+
173
+ ```bash
174
+ scripts/init_skill.py <skill-name> --path <output-directory>
175
+ ```
176
+
177
+ Creates skill directory with skill.json, SKILL.md template, example resource directories, and placeholder files.
178
+
179
+ ### Step 4: Edit the Skill
180
+
181
+ **Writing guideline:** Always use imperative/infinitive form.
182
+
183
+ **Update skill.json:**
184
+ - `name`: The skill display name
185
+ - `description`: Include both what the skill does AND specific triggers/contexts for when to use it
186
+ - `version`: Semantic version (e.g., "1.0.0")
187
+
188
+ **Update SKILL.md (pure Markdown, no frontmatter):**
189
+ - Write instructions for using the skill and bundled resources
190
+ - For multi-step processes: See references/workflows.md
191
+ - For specific output formats: See references/output-patterns.md
192
+
193
+ **Start with Reusable Skill Contents:**
194
+ - Implement scripts, references, and assets first
195
+ - Test scripts by running them
196
+ - Delete example files not needed for the skill
197
+
198
+ ### Step 5: Packaging a Skill
199
+
200
+ ```bash
201
+ scripts/package_skill.py <path/to/skill-folder> [output-directory]
202
+ ```
203
+
204
+ Validates and packages the skill into a distributable .skill file (zip format).
205
+
206
+ ### Step 6: Iterate
207
+
208
+ 1. Use the skill on real tasks
209
+ 2. Notice struggles or inefficiencies
210
+ 3. Identify how SKILL.md or bundled resources should be updated
211
+ 4. Implement changes and test again
@@ -1,8 +1,3 @@
1
- ---
2
- name: skill-creator
3
- description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
4
- ---
5
-
6
1
  # Skill Creator
7
2
 
8
3
  ## Description
@@ -34,15 +29,18 @@ Follow these steps in order:
34
29
 
35
30
  ```
36
31
  skill-name/
37
- ├── SKILL.md (required — YAML frontmatter + markdown body)
32
+ ├── skill.json (required — single source of truth for metadata)
33
+ ├── SKILL.md (required — pure Markdown, no frontmatter)
38
34
  ├── scripts/ (executable code, Python/Bash)
39
35
  ├── references/ (documentation loaded into context as needed)
36
+ ├── examples/ (sample outputs showing expected format)
37
+ ├── hooks/ (git hooks or other hook scripts)
40
38
  └── assets/ (files used in output: templates, images, fonts)
41
39
  ```
42
40
 
43
- ### SKILL.md Frontmatter
41
+ ### skill.json (metadata)
44
42
 
45
- Only `name` and `description` are required. Description is the primary trigger mechanism — include both what the skill does AND when to use it.
43
+ Contains `name`, `description`, `version`, `author`, `tags`. The `description` is the primary trigger mechanism — include both what the skill does AND when to use it. The installer automatically injects YAML frontmatter from skill.json into the installed SKILL.md.
46
44
 
47
45
  ### Bundled Resources
48
46
 
@@ -1,8 +1,3 @@
1
- ---
2
- name: skill-creator
3
- description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
4
- ---
5
-
6
1
  # Skill Creator
7
2
 
8
3
  This skill provides guidance for creating effective skills.
@@ -0,0 +1,61 @@
1
+ # Test Generator
2
+
3
+ Generate comprehensive unit and integration tests for code.
4
+
5
+ ## Process
6
+
7
+ 1. **Analyze**: Understand code purpose, paths, dependencies, edge cases
8
+ 2. **Framework**: Determine or ask for testing framework
9
+ 3. **Generate**: Create test cases covering:
10
+ - Happy path (normal behavior)
11
+ - Edge cases (boundaries, empty/null inputs)
12
+ - Error cases (invalid inputs, exceptions)
13
+ - Integration scenarios (if applicable)
14
+
15
+ ## Test Structure (AAA Pattern)
16
+
17
+ ```
18
+ - Arrange: Setup test data
19
+ - Act: Execute code
20
+ - Assert: Verify results
21
+ ```
22
+
23
+ ## Coverage Goals
24
+
25
+ - 80%+ code coverage
26
+ - All public methods
27
+ - All conditional branches
28
+ - Positive and negative cases
29
+
30
+ ## Best Practices
31
+
32
+ - One assertion per test
33
+ - Independent tests
34
+ - Descriptive test names
35
+ - Mock external dependencies
36
+ - Clear assertion messages
37
+
38
+ ## Example Output
39
+
40
+ ```javascript
41
+ describe('ComponentName', () => {
42
+ test('should [behavior] when [condition]', () => {
43
+ // Arrange
44
+ const input = setupTestData();
45
+
46
+ // Act
47
+ const result = functionUnderTest(input);
48
+
49
+ // Assert
50
+ expect(result).toEqual(expectedOutput);
51
+ });
52
+
53
+ test('should handle edge case', () => {
54
+ // ...
55
+ });
56
+
57
+ test('should throw on invalid input', () => {
58
+ expect(() => fn(invalid)).toThrow();
59
+ });
60
+ });
61
+ ```
@@ -0,0 +1,105 @@
1
+ # Vercel React Best Practices
2
+
3
+ A thorough performance optimization framework for React and Next.js projects. Contains 57 actionable rules organized into 8 categories, ranked by potential impact.
4
+
5
+ ## When to Apply
6
+
7
+ Reference these guidelines when:
8
+ - Writing new React components
9
+ - Implementing data fetching
10
+ - Reviewing code for performance concerns
11
+ - Refactoring existing applications
12
+ - Reducing bundle sizes and load times
13
+
14
+ ## Rule Categories (Priority-Ordered)
15
+
16
+ ### 1. Eliminating Waterfalls (CRITICAL)
17
+ Prefix: `async-`
18
+
19
+ - Avoid sequential data fetching — use parallel requests (`Promise.all`, `Promise.allSettled`)
20
+ - Prefetch data at the layout/page level rather than in deeply nested components
21
+ - Use `loading.tsx` and `Suspense` boundaries to stream content progressively
22
+ - Avoid `await` chains where requests don't depend on each other
23
+ - Colocate data fetching with the component that uses the data, but fetch in parallel at the route level
24
+ - Use React Server Components to move data fetching to the server and eliminate client-server waterfalls
25
+
26
+ ### 2. Bundle Size Optimization (CRITICAL)
27
+ Prefix: `bundle-`
28
+
29
+ - Prefer `next/dynamic` or `React.lazy` for heavy components not needed on initial load
30
+ - Audit dependencies with `@next/bundle-analyzer` — remove or replace bloated packages
31
+ - Use tree-shakeable libraries and import only what you need (`import { x } from 'lib'` not `import lib from 'lib'`)
32
+ - Mark client components with `'use client'` only at the lowest necessary level
33
+ - Avoid importing server-only code into client components
34
+ - Use `next/image` instead of raw `<img>` tags for automatic optimization
35
+ - Use `next/font` to self-host fonts and eliminate external font requests
36
+
37
+ ### 3. Server-Side Performance (HIGH)
38
+ Prefix: `server-`
39
+
40
+ - Default to React Server Components — only add `'use client'` when interactivity is needed
41
+ - Use the `cache()` function to deduplicate identical requests within a single render
42
+ - Leverage `unstable_cache` or `fetch` cache options for cross-request caching
43
+ - Set proper `revalidate` values — avoid `revalidate: 0` unless data truly changes on every request
44
+ - Use `generateStaticParams` for static generation of dynamic routes
45
+ - Move database queries and API calls to Server Components or Route Handlers
46
+ - Use streaming (`loading.tsx`, `Suspense`) to avoid blocking the entire page on slow data
47
+
48
+ ### 4. Client-Side Data Fetching (MEDIUM-HIGH)
49
+ Prefix: `client-`
50
+
51
+ - Use SWR or React Query for client-side data fetching with caching, revalidation, and deduplication
52
+ - Implement optimistic updates for mutations to improve perceived performance
53
+ - Set appropriate `staleTime` and `cacheTime` to avoid unnecessary refetches
54
+ - Use `prefetchQuery` or `preload` to start fetching before navigation
55
+ - Avoid `useEffect` + `fetch` patterns — prefer dedicated data fetching libraries
56
+ - Paginate or infinitely scroll large datasets instead of loading everything at once
57
+
58
+ ### 5. Re-render Optimization (MEDIUM)
59
+ Prefix: `rerender-`
60
+
61
+ - Lift state up only as far as necessary — keep state close to where it's used
62
+ - Split contexts to avoid triggering unnecessary re-renders on unrelated state changes
63
+ - Use `useMemo` and `useCallback` only for expensive computations or stable references passed to memoized children
64
+ - Avoid creating new objects/arrays in render — extract them as constants or memoize them
65
+ - Use `React.memo` for pure components that re-render often with the same props
66
+ - Prefer `useRef` over `useState` for values that don't need to trigger re-renders
67
+ - Avoid prop drilling — use composition (`children` prop) instead of deep prop chains
68
+
69
+ ### 6. Rendering Performance (MEDIUM)
70
+ Prefix: `rendering-`
71
+
72
+ - Virtualize long lists with `react-window` or `@tanstack/virtual`
73
+ - Debounce rapid user inputs (search, resize, scroll handlers)
74
+ - Use CSS for animations and transitions instead of JS-driven re-renders
75
+ - Use `content-visibility: auto` for off-screen content
76
+ - Avoid layout thrashing — batch DOM reads and writes
77
+ - Use `will-change` sparingly and only on elements that will actually animate
78
+ - Prefer `transform` and `opacity` for GPU-accelerated animations
79
+
80
+ ### 7. JavaScript Performance (LOW-MEDIUM)
81
+ Prefix: `js-`
82
+
83
+ - Avoid blocking the main thread — use `requestIdleCallback` or Web Workers for heavy computation
84
+ - Use `Map` and `Set` for frequent lookups instead of arrays
85
+ - Minimize closures in hot paths
86
+ - Prefer `for...of` or `Array.prototype` methods over manual loops for readability, but use manual loops in performance-critical sections
87
+ - Avoid deep cloning — use structural sharing (Immer) or shallow copies where possible
88
+ - Use `AbortController` to cancel stale requests and avoid race conditions
89
+
90
+ ### 8. Advanced Patterns (LOW)
91
+ Prefix: `advanced-`
92
+
93
+ - Use the `Offscreen` API (when stable) for pre-rendering hidden UI
94
+ - Implement route-level code splitting with parallel route segments
95
+ - Use Edge Runtime for latency-sensitive API routes
96
+ - Implement partial prerendering (PPR) for hybrid static/dynamic pages
97
+ - Use `Server Actions` for form mutations to avoid manual API routes
98
+ - Profile with React DevTools Profiler and Chrome Performance tab before optimizing
99
+
100
+ ## General Principles
101
+
102
+ - **Measure before optimizing** — use Lighthouse, Web Vitals, and React DevTools
103
+ - **Higher-priority categories yield larger gains** — focus on waterfalls and bundle size first
104
+ - **Don't prematurely optimize** — only apply lower-priority rules after addressing critical ones
105
+ - **Test performance changes** — verify improvements with real metrics, not just intuition
@@ -1,8 +1,3 @@
1
- ---
2
- name: verify-hardened-docker
3
- description: Comprehensive security verification for Docker configurations. Checks Dockerfile, docker-compose.yml, and running containers against CIS Docker Benchmark, OWASP, and NIST SP 800-190 standards. Scans for vulnerabilities, leaked secrets, insecure configurations, and missing hardening controls.
4
- ---
5
-
6
1
  # Verify Hardened Docker
7
2
 
8
3
  ## Overview