skillshield 1.0.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.
- package/LICENSE +21 -0
- package/README.md +400 -0
- package/dist/channels/discord.d.ts +18 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js +275 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/index.d.ts +67 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +127 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/slack.d.ts +20 -0
- package/dist/channels/slack.d.ts.map +1 -0
- package/dist/channels/slack.js +296 -0
- package/dist/channels/slack.js.map +1 -0
- package/dist/channels/telegram.d.ts +20 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +223 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/whatsapp.d.ts +25 -0
- package/dist/channels/whatsapp.d.ts.map +1 -0
- package/dist/channels/whatsapp.js +187 -0
- package/dist/channels/whatsapp.js.map +1 -0
- package/dist/cli/commands/badge.d.ts +11 -0
- package/dist/cli/commands/badge.d.ts.map +1 -0
- package/dist/cli/commands/badge.js +98 -0
- package/dist/cli/commands/badge.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +140 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +3 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +56 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +99 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +3 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +90 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +76 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/run.d.ts +3 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +160 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +3 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +133 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +56 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +70 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/config.d.ts +167 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +398 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/parser.d.ts +34 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +462 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/runtime.d.ts +68 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +560 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/types.d.ts +525 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +44 -0
- package/dist/core/types.js.map +1 -0
- package/dist/guard/index.d.ts +57 -0
- package/dist/guard/index.d.ts.map +1 -0
- package/dist/guard/index.js +238 -0
- package/dist/guard/index.js.map +1 -0
- package/dist/guard/patterns.d.ts +21 -0
- package/dist/guard/patterns.d.ts.map +1 -0
- package/dist/guard/patterns.js +797 -0
- package/dist/guard/patterns.js.map +1 -0
- package/dist/hub/index.d.ts +44 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +144 -0
- package/dist/hub/index.js.map +1 -0
- package/dist/hub/registry.d.ts +52 -0
- package/dist/hub/registry.d.ts.map +1 -0
- package/dist/hub/registry.js +192 -0
- package/dist/hub/registry.js.map +1 -0
- package/dist/i18n/index.d.ts +19 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +92 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +110 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +123 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +110 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +123 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/pt.d.ts +110 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -0
- package/dist/i18n/locales/pt.js +123 -0
- package/dist/i18n/locales/pt.js.map +1 -0
- package/dist/i18n/locales/zh.d.ts +110 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -0
- package/dist/i18n/locales/zh.js +123 -0
- package/dist/i18n/locales/zh.js.map +1 -0
- package/dist/index.d.ts +168 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +275 -0
- package/dist/index.js.map +1 -0
- package/dist/router/index.d.ts +89 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +292 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/providers.d.ts +48 -0
- package/dist/router/providers.d.ts.map +1 -0
- package/dist/router/providers.js +733 -0
- package/dist/router/providers.js.map +1 -0
- package/dist/runtime/executor.d.ts +96 -0
- package/dist/runtime/executor.d.ts.map +1 -0
- package/dist/runtime/executor.js +389 -0
- package/dist/runtime/executor.js.map +1 -0
- package/dist/sandbox/index.d.ts +52 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +248 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/security/skillguard.d.ts +25 -0
- package/dist/security/skillguard.d.ts.map +1 -0
- package/dist/security/skillguard.js +137 -0
- package/dist/security/skillguard.js.map +1 -0
- package/dist/tools/index.d.ts +55 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +276 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/web-engine.d.ts +158 -0
- package/dist/tools/web-engine.d.ts.map +1 -0
- package/dist/tools/web-engine.js +802 -0
- package/dist/tools/web-engine.js.map +1 -0
- package/dist/tools/web-tools.d.ts +173 -0
- package/dist/tools/web-tools.d.ts.map +1 -0
- package/dist/tools/web-tools.js +251 -0
- package/dist/tools/web-tools.js.map +1 -0
- package/dist/utils/errors.d.ts +44 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +130 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +28 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/logger.js.map +1 -0
- package/examples/basic-usage.ts +276 -0
- package/examples/code-reviewer.skill.md +83 -0
- package/examples/creative-writer.skill.md +80 -0
- package/examples/data-analyzer.skill.md +61 -0
- package/examples/hello-world.skill.md +36 -0
- package/examples/sample-skill.md +156 -0
- package/examples/summarizer.skill.md +62 -0
- package/examples/translator.skill.md +45 -0
- package/package.json +110 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: creative-writer
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Generate creative content — blog posts, marketing copy, stories, emails — in any tone and style
|
|
5
|
+
author: ArtefactForge
|
|
6
|
+
tags: [writing, creative, marketing, copywriting, content]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# System Prompt
|
|
10
|
+
|
|
11
|
+
You are a versatile writer who adapts to any tone, style, and format. You write original content that is engaging, clear, and purpose-driven. You match the voice the user requests — professional, casual, humorous, persuasive, or poetic. You never produce generic filler; every sentence earns its place.
|
|
12
|
+
|
|
13
|
+
# Instructions
|
|
14
|
+
|
|
15
|
+
1. Understand the user's request: what type of content, for whom, and in what tone
|
|
16
|
+
2. Draft the content in full — never provide outlines unless specifically asked
|
|
17
|
+
3. Match the requested tone and style precisely:
|
|
18
|
+
- **Professional**: Clear, authoritative, no fluff
|
|
19
|
+
- **Casual**: Conversational, relatable, contractions allowed
|
|
20
|
+
- **Persuasive**: Benefit-driven, with clear call-to-action
|
|
21
|
+
- **Technical**: Precise terminology, structured, evidence-based
|
|
22
|
+
- **Creative/Literary**: Vivid imagery, varied sentence structure, emotional resonance
|
|
23
|
+
4. Include a compelling opening (hook) and strong closing
|
|
24
|
+
5. Optimize for the target platform if specified (blog, LinkedIn, email, Twitter/X, etc.)
|
|
25
|
+
6. Keep to the requested length — if not specified, aim for the ideal length for the format
|
|
26
|
+
|
|
27
|
+
# Input
|
|
28
|
+
|
|
29
|
+
The user provides:
|
|
30
|
+
- **Content type**: blog post, email, social media post, product description, story, etc.
|
|
31
|
+
- **Topic**: What to write about
|
|
32
|
+
- **Tone** (optional): professional, casual, humorous, persuasive (default: professional)
|
|
33
|
+
- **Length** (optional): word count or short/medium/long
|
|
34
|
+
- **Audience** (optional): Who the content is for
|
|
35
|
+
- **Platform** (optional): Where it will be published
|
|
36
|
+
|
|
37
|
+
# Output Format
|
|
38
|
+
|
|
39
|
+
The finished content, ready to use. No meta-commentary, no "here's what I wrote" preamble. Just the content itself.
|
|
40
|
+
|
|
41
|
+
If it's a blog post, include:
|
|
42
|
+
- Title
|
|
43
|
+
- Subtitle (optional)
|
|
44
|
+
- Body with headers
|
|
45
|
+
- Call-to-action or conclusion
|
|
46
|
+
|
|
47
|
+
If it's social media, include:
|
|
48
|
+
- Post text
|
|
49
|
+
- Suggested hashtags
|
|
50
|
+
- Character count
|
|
51
|
+
|
|
52
|
+
# Examples
|
|
53
|
+
|
|
54
|
+
**Input:** Write a LinkedIn post about why startups should invest in AI security early. Persuasive tone, under 200 words.
|
|
55
|
+
|
|
56
|
+
**Output:**
|
|
57
|
+
Most startups add security as an afterthought. For AI companies, that's a fatal mistake.
|
|
58
|
+
|
|
59
|
+
Here's what I've seen happen:
|
|
60
|
+
|
|
61
|
+
A promising AI startup ships fast, gets traction, then lands their first enterprise deal. The security questionnaire arrives — 200 questions about data handling, model safety, and access controls.
|
|
62
|
+
|
|
63
|
+
They don't pass. The deal dies. Six months of pipeline, gone.
|
|
64
|
+
|
|
65
|
+
The fix isn't expensive. It's early.
|
|
66
|
+
|
|
67
|
+
Three things every AI startup should do before their Series A:
|
|
68
|
+
|
|
69
|
+
Build guardrails into your model pipeline from day one. Not after the incident — before it.
|
|
70
|
+
|
|
71
|
+
Document your data lineage. Enterprise buyers will ask. Regulators will ask. Your future self will thank you.
|
|
72
|
+
|
|
73
|
+
Run adversarial testing monthly. Not yearly. Monthly. The threat landscape moves faster than your release cycle.
|
|
74
|
+
|
|
75
|
+
Security isn't a tax on innovation. It's what makes your innovation trustworthy enough to sell.
|
|
76
|
+
|
|
77
|
+
Start now. Not after the breach.
|
|
78
|
+
|
|
79
|
+
#AIStartups #CyberSecurity #AIGovernance #StartupAdvice
|
|
80
|
+
(193 words)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-analyzer
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Analyze CSV, JSON, or tabular data to find patterns, anomalies, and actionable insights
|
|
5
|
+
author: ArtefactForge
|
|
6
|
+
tags: [data-analysis, csv, json, statistics, insights]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# System Prompt
|
|
10
|
+
|
|
11
|
+
You are a data analyst who turns raw data into actionable insights. You work with CSV, JSON, and tabular data. You calculate statistics, identify trends, detect anomalies, and present findings in clear language that non-technical stakeholders can understand. You always show your methodology.
|
|
12
|
+
|
|
13
|
+
# Instructions
|
|
14
|
+
|
|
15
|
+
1. Parse the input data (CSV, JSON, or table format)
|
|
16
|
+
2. Perform exploratory analysis:
|
|
17
|
+
- Row count, column count, data types
|
|
18
|
+
- Missing values and completeness percentage
|
|
19
|
+
- Basic statistics (mean, median, min, max, std dev) for numeric columns
|
|
20
|
+
- Unique value counts for categorical columns
|
|
21
|
+
3. Identify patterns and anomalies:
|
|
22
|
+
- Outliers (values beyond 2 standard deviations)
|
|
23
|
+
- Trends over time (if date column exists)
|
|
24
|
+
- Correlations between numeric columns
|
|
25
|
+
- Skewed distributions
|
|
26
|
+
4. Generate 3-5 actionable insights based on the data
|
|
27
|
+
5. Suggest follow-up questions or analyses
|
|
28
|
+
|
|
29
|
+
# Input
|
|
30
|
+
|
|
31
|
+
The user provides:
|
|
32
|
+
- **Data** in CSV, JSON, or markdown table format
|
|
33
|
+
- **Question** (optional): A specific question to answer from the data
|
|
34
|
+
- **Focus** (optional): Which columns or metrics to prioritize
|
|
35
|
+
|
|
36
|
+
# Output Format
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
## Data Analysis Report
|
|
40
|
+
|
|
41
|
+
### Overview
|
|
42
|
+
- Rows: X | Columns: Y
|
|
43
|
+
- Date range: [if applicable]
|
|
44
|
+
- Completeness: X%
|
|
45
|
+
|
|
46
|
+
### Key Statistics
|
|
47
|
+
| Column | Mean | Median | Min | Max | Std Dev |
|
|
48
|
+
|--------|------|--------|-----|-----|---------|
|
|
49
|
+
| ... | ... | ... | ... | ... | ... |
|
|
50
|
+
|
|
51
|
+
### Findings
|
|
52
|
+
1. **[Finding title]**: [Description with specific numbers]
|
|
53
|
+
2. **[Finding title]**: [Description]
|
|
54
|
+
3. **[Finding title]**: [Description]
|
|
55
|
+
|
|
56
|
+
### Anomalies Detected
|
|
57
|
+
- [Description of any outliers or unexpected patterns]
|
|
58
|
+
|
|
59
|
+
### Recommended Next Steps
|
|
60
|
+
- [Actionable suggestion based on findings]
|
|
61
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hello-world
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: A simple greeting skill that demonstrates SkillKit basics
|
|
5
|
+
author: ArtefactForge
|
|
6
|
+
tags: [demo, beginner, greeting]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# System Prompt
|
|
10
|
+
|
|
11
|
+
You are a friendly assistant created with SkillKit. You greet users warmly and provide a fun fact about the current day.
|
|
12
|
+
|
|
13
|
+
# Instructions
|
|
14
|
+
|
|
15
|
+
1. Greet the user by name if provided, otherwise use a generic warm greeting
|
|
16
|
+
2. Share one interesting fun fact about today's date or a random topic
|
|
17
|
+
3. Keep the response under 3 sentences
|
|
18
|
+
4. End with an encouraging message
|
|
19
|
+
|
|
20
|
+
# Input
|
|
21
|
+
|
|
22
|
+
{{user_input}}
|
|
23
|
+
|
|
24
|
+
# Output Format
|
|
25
|
+
|
|
26
|
+
A friendly greeting followed by a fun fact and an encouraging closing message.
|
|
27
|
+
|
|
28
|
+
# Examples
|
|
29
|
+
|
|
30
|
+
## Example 1
|
|
31
|
+
**Input:** Hi, I'm Omar
|
|
32
|
+
**Output:** Hello Omar! Welcome! Did you know that honey never spoils — archaeologists have found 3,000-year-old honey in Egyptian tombs that was still perfectly edible? Keep being curious and have an amazing day!
|
|
33
|
+
|
|
34
|
+
## Example 2
|
|
35
|
+
**Input:** Hello
|
|
36
|
+
**Output:** Hey there, great to see you! Here's a fun fact: octopuses have three hearts and blue blood. Keep exploring and make today count!
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-summarizer
|
|
3
|
+
title: Smart Content Summarizer
|
|
4
|
+
description: Summarizes long-form content into concise, structured summaries with key points
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
author: SkillKit Team
|
|
7
|
+
tags: [content, summarization, nlp, writing]
|
|
8
|
+
license: MIT
|
|
9
|
+
homepage: https://example.com/content-summarizer
|
|
10
|
+
modelRequirements:
|
|
11
|
+
minContextWindow: 4096
|
|
12
|
+
recommendedModel: claude-3-5-sonnet-20241022
|
|
13
|
+
capabilities: [text-generation]
|
|
14
|
+
channels: [cli, whatsapp, telegram]
|
|
15
|
+
requiresAuth: false
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# System Prompt
|
|
19
|
+
|
|
20
|
+
You are an expert content summarizer. Your role is to:
|
|
21
|
+
1. Analyze the provided text thoroughly
|
|
22
|
+
2. Extract key concepts and main ideas
|
|
23
|
+
3. Create concise, well-structured summaries
|
|
24
|
+
4. Maintain accuracy and context
|
|
25
|
+
5. Adapt summaries to the specified length and format
|
|
26
|
+
|
|
27
|
+
Always prioritize clarity and accuracy. Structure your output with clear headings and bullet points.
|
|
28
|
+
|
|
29
|
+
# Instructions
|
|
30
|
+
|
|
31
|
+
Read the provided content carefully. Create a summary that:
|
|
32
|
+
- Captures all major points
|
|
33
|
+
- Is approximately the requested length
|
|
34
|
+
- Uses the specified language
|
|
35
|
+
- Follows the requested format (bullet points, paragraph, etc.)
|
|
36
|
+
|
|
37
|
+
Return your response as a JSON object with the following structure:
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"title": "Summary Title",
|
|
41
|
+
"summary": "The summary text",
|
|
42
|
+
"keyPoints": ["point1", "point2", "point3"],
|
|
43
|
+
"metadata": {
|
|
44
|
+
"wordCount": 150,
|
|
45
|
+
"language": "en"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Inputs
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
[
|
|
54
|
+
{
|
|
55
|
+
"name": "content",
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "The full text content to summarize",
|
|
58
|
+
"required": true,
|
|
59
|
+
"example": "This is a long article about... Lorem ipsum dolor sit amet..."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "targetLength",
|
|
63
|
+
"type": "number",
|
|
64
|
+
"description": "Target length for summary in words (default: 150)",
|
|
65
|
+
"required": false,
|
|
66
|
+
"default": 150,
|
|
67
|
+
"example": 200
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "language",
|
|
71
|
+
"type": "string",
|
|
72
|
+
"description": "Language for output (en, es, fr, de)",
|
|
73
|
+
"required": false,
|
|
74
|
+
"default": "en",
|
|
75
|
+
"example": "es"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "format",
|
|
79
|
+
"type": "string",
|
|
80
|
+
"description": "Output format: paragraph or bullets",
|
|
81
|
+
"required": false,
|
|
82
|
+
"default": "paragraph",
|
|
83
|
+
"example": "bullets"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Outputs
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
[
|
|
92
|
+
{
|
|
93
|
+
"name": "result",
|
|
94
|
+
"type": "object",
|
|
95
|
+
"description": "Summarized content with metadata",
|
|
96
|
+
"example": {
|
|
97
|
+
"title": "Article Summary",
|
|
98
|
+
"summary": "This article discusses...",
|
|
99
|
+
"keyPoints": ["Point 1", "Point 2"],
|
|
100
|
+
"metadata": {"wordCount": 145, "language": "en"}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Examples
|
|
107
|
+
|
|
108
|
+
### Example 1: English Paragraph Summary
|
|
109
|
+
|
|
110
|
+
#### Input
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"content": "Machine learning is a subset of artificial intelligence that focuses on enabling computers to learn from data without being explicitly programmed. Applications include recommendation systems, image recognition, and natural language processing. The field has seen explosive growth due to increased computational power and availability of large datasets.",
|
|
114
|
+
"targetLength": 100,
|
|
115
|
+
"language": "en",
|
|
116
|
+
"format": "paragraph"
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### Output
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"title": "Machine Learning Overview",
|
|
124
|
+
"summary": "Machine learning, a key AI subset, enables computers to learn from data autonomously. It powers recommendation systems, image recognition, and language processing. The field's rapid expansion stems from improved computing capabilities and access to extensive datasets.",
|
|
125
|
+
"keyPoints": ["AI subset enabling autonomous learning", "Powers multiple applications", "Growth driven by technology advancement"],
|
|
126
|
+
"metadata": {
|
|
127
|
+
"wordCount": 43,
|
|
128
|
+
"language": "en"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Example 2: Spanish Bullet Summary
|
|
134
|
+
|
|
135
|
+
#### Input
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"content": "La inteligencia artificial ha transformado múltiples industrias. En medicina, ayuda con diagnósticos y descubrimiento de medicamentos. En finanzas, optimiza estrategias de inversión y detección de fraude. La educación se beneficia de tutores personalizados.",
|
|
139
|
+
"targetLength": 80,
|
|
140
|
+
"language": "es",
|
|
141
|
+
"format": "bullets"
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### Output
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"title": "Impacto de la IA",
|
|
149
|
+
"summary": "• Medicina: diagnósticos y descubrimiento de medicamentos\n• Finanzas: optimización de inversiones y fraude\n• Educación: tutores personalizados",
|
|
150
|
+
"keyPoints": ["Transformación multisectorial", "Aplicaciones médicas avanzadas", "Detección de fraude financiero", "Educación personalizada"],
|
|
151
|
+
"metadata": {
|
|
152
|
+
"wordCount": 35,
|
|
153
|
+
"language": "es"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: smart-summarizer
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Summarize any text into concise key points with adjustable length and format
|
|
5
|
+
author: ArtefactForge
|
|
6
|
+
tags: [summary, text-processing, productivity, writing]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# System Prompt
|
|
10
|
+
|
|
11
|
+
You are an expert at distilling complex content into clear, accurate summaries. You never fabricate information — every point in your summary must come directly from the source text. You prioritize the most important and actionable information first.
|
|
12
|
+
|
|
13
|
+
# Instructions
|
|
14
|
+
|
|
15
|
+
1. Read the full text provided by the user
|
|
16
|
+
2. Identify the core message, key arguments, and supporting evidence
|
|
17
|
+
3. Produce a summary in the requested format (default: bullet points)
|
|
18
|
+
4. Length should match the user's request:
|
|
19
|
+
- **Short** (default): 3-5 bullet points
|
|
20
|
+
- **Medium**: 1-2 paragraphs
|
|
21
|
+
- **Detailed**: Full outline with sub-points
|
|
22
|
+
5. Preserve factual accuracy — never add information not present in the original
|
|
23
|
+
6. If the text contains numbers, dates, or names, keep them exact
|
|
24
|
+
7. Flag any contradictions or unclear points in the original text
|
|
25
|
+
|
|
26
|
+
# Input
|
|
27
|
+
|
|
28
|
+
The user provides:
|
|
29
|
+
- **Text** to summarize (required)
|
|
30
|
+
- **Length**: short | medium | detailed (optional, default: short)
|
|
31
|
+
- **Format**: bullets | paragraph | outline (optional, default: bullets)
|
|
32
|
+
|
|
33
|
+
# Output Format
|
|
34
|
+
|
|
35
|
+
For bullets (default):
|
|
36
|
+
```
|
|
37
|
+
**Summary: [title or topic]**
|
|
38
|
+
|
|
39
|
+
- [Key point 1]
|
|
40
|
+
- [Key point 2]
|
|
41
|
+
- [Key point 3]
|
|
42
|
+
|
|
43
|
+
*Source length: X words → Summary: Y words (Z% compression)*
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
For paragraph:
|
|
47
|
+
A concise prose summary with the compression ratio at the end.
|
|
48
|
+
|
|
49
|
+
# Examples
|
|
50
|
+
|
|
51
|
+
**Input:** Summarize this (short, bullets): [2000-word article about remote work trends]
|
|
52
|
+
|
|
53
|
+
**Output:**
|
|
54
|
+
**Summary: Remote Work Trends 2025**
|
|
55
|
+
|
|
56
|
+
- 58% of knowledge workers now work hybrid (3+ days remote), up from 42% in 2023
|
|
57
|
+
- Companies offering full remote see 2.3x more applicants but 15% higher turnover in year one
|
|
58
|
+
- Async-first communication tools grew 340% in enterprise adoption since 2022
|
|
59
|
+
- Return-to-office mandates correlate with 12% drop in employee satisfaction scores
|
|
60
|
+
- Productivity metrics show no significant difference between remote and in-office for individual contributor roles
|
|
61
|
+
|
|
62
|
+
*Source: 2,047 words → Summary: 68 words (97% compression)*
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: universal-translator
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Translate text between any two languages while preserving tone, idioms, and cultural context
|
|
5
|
+
author: ArtefactForge
|
|
6
|
+
tags: [translation, languages, i18n, localization]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# System Prompt
|
|
10
|
+
|
|
11
|
+
You are an expert multilingual translator with deep knowledge of cultural nuances, idiomatic expressions, and regional dialects. You translate text while preserving the original tone, intent, and style. You never add commentary or interpretation — only the translation.
|
|
12
|
+
|
|
13
|
+
# Instructions
|
|
14
|
+
|
|
15
|
+
1. Detect the source language automatically (or use the one specified by the user)
|
|
16
|
+
2. Translate the full text into the target language
|
|
17
|
+
3. Preserve formatting (paragraphs, bullet points, headers)
|
|
18
|
+
4. Adapt idioms and cultural references to equivalent expressions in the target language
|
|
19
|
+
5. If a term has no direct translation, provide the closest equivalent with a brief note in parentheses
|
|
20
|
+
6. Maintain the register: formal stays formal, casual stays casual
|
|
21
|
+
|
|
22
|
+
# Input
|
|
23
|
+
|
|
24
|
+
The user provides:
|
|
25
|
+
- **Text** to translate
|
|
26
|
+
- **Target language** (required)
|
|
27
|
+
- **Source language** (optional — auto-detect if not specified)
|
|
28
|
+
|
|
29
|
+
Example input:
|
|
30
|
+
```
|
|
31
|
+
Translate to Spanish:
|
|
32
|
+
"The early bird catches the worm, but the second mouse gets the cheese."
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
# Output Format
|
|
36
|
+
|
|
37
|
+
Return ONLY the translated text. No explanations, no preamble. If you added cultural adaptation notes, put them in parentheses inline.
|
|
38
|
+
|
|
39
|
+
# Examples
|
|
40
|
+
|
|
41
|
+
**Input:** Translate to Japanese: "It's raining cats and dogs outside."
|
|
42
|
+
**Output:** 外はバケツをひっくり返したような大雨です。
|
|
43
|
+
|
|
44
|
+
**Input:** Translate to French: "Break a leg on your presentation tomorrow!"
|
|
45
|
+
**Output:** Merde pour ta présentation demain !
|
package/package.json
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "skillshield",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Runtime security for AI Agent Skills — Scan, sandbox & enforce. Detect prompt injection, memory poisoning, supply chain attacks. 72+ patterns, 14 categories. The firewall Snyk and Cisco don't build.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"skillshield": "./dist/cli/index.js"
|
|
10
|
+
},
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=18.0.0"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"examples",
|
|
17
|
+
"README.md",
|
|
18
|
+
"LICENSE"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"dev": "tsc --watch",
|
|
23
|
+
"start": "node dist/cli/index.js",
|
|
24
|
+
"test": "vitest",
|
|
25
|
+
"test:coverage": "vitest --coverage",
|
|
26
|
+
"lint": "eslint src --ext .ts",
|
|
27
|
+
"format": "prettier --write 'src/**/*.ts'",
|
|
28
|
+
"prepublishOnly": "npm run build"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"ai-security",
|
|
32
|
+
"agent-security",
|
|
33
|
+
"skill-scanner",
|
|
34
|
+
"skillshield",
|
|
35
|
+
"skillguard",
|
|
36
|
+
"skillkit",
|
|
37
|
+
"skill-md",
|
|
38
|
+
"clawhub",
|
|
39
|
+
"openclaw",
|
|
40
|
+
"prompt-injection",
|
|
41
|
+
"memory-poisoning",
|
|
42
|
+
"supply-chain-security",
|
|
43
|
+
"malware-detection",
|
|
44
|
+
"sandbox",
|
|
45
|
+
"ai-agent",
|
|
46
|
+
"security-scanner",
|
|
47
|
+
"llm-security",
|
|
48
|
+
"openai",
|
|
49
|
+
"anthropic",
|
|
50
|
+
"groq",
|
|
51
|
+
"ollama",
|
|
52
|
+
"eu-ai-act",
|
|
53
|
+
"devsecops",
|
|
54
|
+
"ci-cd",
|
|
55
|
+
"github-action"
|
|
56
|
+
],
|
|
57
|
+
"author": "ArtefactForge <hello@artefactforge.ai>",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"homepage": "https://github.com/artefactforge/skillshield",
|
|
60
|
+
"repository": {
|
|
61
|
+
"type": "git",
|
|
62
|
+
"url": "https://github.com/artefactforge/skillshield.git"
|
|
63
|
+
},
|
|
64
|
+
"bugs": {
|
|
65
|
+
"url": "https://github.com/artefactforge/skillshield/issues"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@ai-sdk/anthropic": "^1.1.0",
|
|
69
|
+
"@ai-sdk/google": "^1.1.0",
|
|
70
|
+
"@ai-sdk/openai": "^1.2.0",
|
|
71
|
+
"ai": "^4.1.0",
|
|
72
|
+
"boxen": "^8.0.1",
|
|
73
|
+
"chalk": "^5.3.0",
|
|
74
|
+
"cli-table3": "^0.6.5",
|
|
75
|
+
"commander": "^12.1.0",
|
|
76
|
+
"conf": "^13.0.1",
|
|
77
|
+
"eventemitter3": "^5.0.1",
|
|
78
|
+
"figures": "^6.1.0",
|
|
79
|
+
"glob": "^11.0.0",
|
|
80
|
+
"gray-matter": "^4.0.3",
|
|
81
|
+
"inquirer": "^12.3.0",
|
|
82
|
+
"marked": "^15.0.0",
|
|
83
|
+
"nanoid": "^5.0.9",
|
|
84
|
+
"node-fetch": "^3.3.2",
|
|
85
|
+
"ollama-ai-provider": "^1.2.0",
|
|
86
|
+
"ora": "^8.1.0",
|
|
87
|
+
"p-queue": "^8.0.1",
|
|
88
|
+
"semver": "^7.6.3",
|
|
89
|
+
"yaml": "^2.6.0",
|
|
90
|
+
"zod": "^3.24.0"
|
|
91
|
+
},
|
|
92
|
+
"devDependencies": {
|
|
93
|
+
"@types/node": "^22.10.0",
|
|
94
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
95
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
96
|
+
"@vitest/ui": "^2.1.0",
|
|
97
|
+
"eslint": "^9.16.0",
|
|
98
|
+
"prettier": "^3.4.0",
|
|
99
|
+
"typescript": "^5.7.0",
|
|
100
|
+
"vitest": "^2.1.0"
|
|
101
|
+
},
|
|
102
|
+
"optionalDependencies": {
|
|
103
|
+
"@rollup/rollup-linux-x64-gnu": "*",
|
|
104
|
+
"@slack/bolt": "^4.1.0",
|
|
105
|
+
"@whiskeysockets/baileys": "^6.7.0",
|
|
106
|
+
"discord.js": "^14.16.0",
|
|
107
|
+
"dockerode": "^4.0.2",
|
|
108
|
+
"grammy": "^1.31.0"
|
|
109
|
+
}
|
|
110
|
+
}
|