@jaypie/mcp 0.3.2 → 0.3.4
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/dist/aws-B3dW_-bD.js +1202 -0
- package/dist/aws-B3dW_-bD.js.map +1 -0
- package/dist/index.js +166 -1209
- package/dist/index.js.map +1 -1
- package/dist/suite.d.ts +1 -0
- package/dist/suite.js +1252 -0
- package/dist/suite.js.map +1 -0
- package/package.json +8 -2
- package/prompts/Jaypie_Fabric_Package.md +86 -0
- package/release-notes/constructs/1.2.17.md +11 -0
- package/release-notes/fabric/0.1.2.md +11 -0
- package/release-notes/mcp/0.3.3.md +12 -0
- package/release-notes/mcp/0.3.4.md +36 -0
- package/skills/agents.md +25 -0
- package/skills/aws.md +107 -0
- package/skills/cdk.md +141 -0
- package/skills/cicd.md +152 -0
- package/skills/datadog.md +129 -0
- package/skills/debugging.md +148 -0
- package/skills/dns.md +134 -0
- package/skills/dynamodb.md +140 -0
- package/skills/errors.md +142 -0
- package/skills/fabric.md +164 -0
- package/skills/index.md +7 -0
- package/skills/jaypie.md +100 -0
- package/skills/legacy.md +97 -0
- package/skills/logs.md +160 -0
- package/skills/mocks.md +174 -0
- package/skills/models.md +195 -0
- package/skills/releasenotes.md +94 -0
- package/skills/secrets.md +155 -0
- package/skills/services.md +175 -0
- package/skills/style.md +190 -0
- package/skills/tests.md +209 -0
- package/skills/tools.md +127 -0
- package/skills/topics.md +116 -0
- package/skills/variables.md +146 -0
- package/skills/writing.md +153 -0
package/skills/tools.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Available MCP tools reference
|
|
3
|
+
related: aws, datadog, debugging
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# MCP Tools Reference
|
|
7
|
+
|
|
8
|
+
Tools available through the Jaypie MCP server.
|
|
9
|
+
|
|
10
|
+
## Documentation Tools
|
|
11
|
+
|
|
12
|
+
| Tool | Description |
|
|
13
|
+
|------|-------------|
|
|
14
|
+
| `skill` | Access Jaypie skill documentation |
|
|
15
|
+
| `list_prompts` | List prompt files (deprecated, use skill) |
|
|
16
|
+
| `read_prompt` | Read prompt file (deprecated, use skill) |
|
|
17
|
+
| `version` | Get MCP server version |
|
|
18
|
+
| `list_release_notes` | List package release notes |
|
|
19
|
+
| `read_release_note` | Read specific release note |
|
|
20
|
+
|
|
21
|
+
### Using Skills
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
skill("index") # List all skills
|
|
25
|
+
skill("jaypie") # Jaypie overview
|
|
26
|
+
skill("tests") # Testing patterns
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## AWS Tools
|
|
30
|
+
|
|
31
|
+
| Tool | Description |
|
|
32
|
+
|------|-------------|
|
|
33
|
+
| `aws_list_profiles` | List AWS profiles from ~/.aws |
|
|
34
|
+
| `aws_lambda_list_functions` | List Lambda functions |
|
|
35
|
+
| `aws_lambda_get_function` | Get Lambda function details |
|
|
36
|
+
| `aws_logs_filter_log_events` | Search CloudWatch Logs |
|
|
37
|
+
| `aws_s3_list_objects` | List S3 bucket objects |
|
|
38
|
+
| `aws_cloudformation_describe_stack` | Get CloudFormation stack details |
|
|
39
|
+
|
|
40
|
+
### DynamoDB
|
|
41
|
+
|
|
42
|
+
| Tool | Description |
|
|
43
|
+
|------|-------------|
|
|
44
|
+
| `aws_dynamodb_describe_table` | Get table metadata |
|
|
45
|
+
| `aws_dynamodb_query` | Query by partition key |
|
|
46
|
+
| `aws_dynamodb_scan` | Full table scan |
|
|
47
|
+
| `aws_dynamodb_get_item` | Get single item |
|
|
48
|
+
|
|
49
|
+
### SQS
|
|
50
|
+
|
|
51
|
+
| Tool | Description |
|
|
52
|
+
|------|-------------|
|
|
53
|
+
| `aws_sqs_list_queues` | List SQS queues |
|
|
54
|
+
| `aws_sqs_get_queue_attributes` | Get queue attributes |
|
|
55
|
+
| `aws_sqs_receive_message` | Peek at messages |
|
|
56
|
+
| `aws_sqs_purge_queue` | Delete all messages |
|
|
57
|
+
|
|
58
|
+
### Step Functions
|
|
59
|
+
|
|
60
|
+
| Tool | Description |
|
|
61
|
+
|------|-------------|
|
|
62
|
+
| `aws_stepfunctions_list_executions` | List state machine executions |
|
|
63
|
+
| `aws_stepfunctions_stop_execution` | Stop running execution |
|
|
64
|
+
|
|
65
|
+
## Datadog Tools
|
|
66
|
+
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `datadog_logs` | Search log entries |
|
|
70
|
+
| `datadog_log_analytics` | Aggregate logs with groupBy |
|
|
71
|
+
| `datadog_monitors` | List and check monitors |
|
|
72
|
+
| `datadog_synthetics` | List synthetic tests |
|
|
73
|
+
| `datadog_metrics` | Query timeseries metrics |
|
|
74
|
+
| `datadog_rum` | Search RUM events |
|
|
75
|
+
|
|
76
|
+
## LLM Tools
|
|
77
|
+
|
|
78
|
+
| Tool | Description |
|
|
79
|
+
|------|-------------|
|
|
80
|
+
| `llm_debug_call` | Debug LLM API call |
|
|
81
|
+
| `llm_list_providers` | List available LLM providers |
|
|
82
|
+
|
|
83
|
+
## Environment Variables
|
|
84
|
+
|
|
85
|
+
### AWS Tools
|
|
86
|
+
- `AWS_PROFILE` - Default profile
|
|
87
|
+
- `AWS_REGION` - Default region
|
|
88
|
+
|
|
89
|
+
### Datadog Tools
|
|
90
|
+
- `DATADOG_API_KEY` or `DD_API_KEY` - API key
|
|
91
|
+
- `DATADOG_APP_KEY` or `DD_APP_KEY` - App key
|
|
92
|
+
- `DD_ENV` - Default environment filter
|
|
93
|
+
- `DD_SERVICE` - Default service filter
|
|
94
|
+
- `DD_SOURCE` - Default log source
|
|
95
|
+
|
|
96
|
+
## Common Patterns
|
|
97
|
+
|
|
98
|
+
### Debug Lambda Issues
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
# Check function config
|
|
102
|
+
aws_lambda_get_function --functionName "my-function"
|
|
103
|
+
|
|
104
|
+
# Search recent logs
|
|
105
|
+
aws_logs_filter_log_events --logGroupName "/aws/lambda/my-function" --filterPattern "ERROR"
|
|
106
|
+
|
|
107
|
+
# Or via Datadog
|
|
108
|
+
datadog_logs --query "service:my-function status:error" --from "now-1h"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Check Queue Health
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
# Get queue depth
|
|
115
|
+
aws_sqs_get_queue_attributes --queueUrl "https://..."
|
|
116
|
+
|
|
117
|
+
# Peek at messages
|
|
118
|
+
aws_sqs_receive_message --queueUrl "https://..." --maxNumberOfMessages 5
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Monitor Status
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
# Check alerting monitors
|
|
125
|
+
datadog_monitors --status '["Alert", "Warn"]'
|
|
126
|
+
```
|
|
127
|
+
|
package/skills/topics.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Topic index and cross-reference
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Topic Index
|
|
6
|
+
|
|
7
|
+
Quick reference for finding the right skill for your task.
|
|
8
|
+
|
|
9
|
+
## By Task
|
|
10
|
+
|
|
11
|
+
### Starting a New Project
|
|
12
|
+
- `skill("jaypie")` - Jaypie overview
|
|
13
|
+
- `skill("style")` - Code conventions
|
|
14
|
+
- `skill("cdk")` - Infrastructure setup
|
|
15
|
+
|
|
16
|
+
### Writing Code
|
|
17
|
+
- `skill("style")` - Code style
|
|
18
|
+
- `skill("errors")` - Error handling
|
|
19
|
+
- `skill("services")` - Service patterns
|
|
20
|
+
- `skill("models")` - Data models
|
|
21
|
+
|
|
22
|
+
### Testing
|
|
23
|
+
- `skill("tests")` - Vitest patterns
|
|
24
|
+
- `skill("mocks")` - @jaypie/testkit mocks
|
|
25
|
+
|
|
26
|
+
### Deploying
|
|
27
|
+
- `skill("cdk")` - CDK constructs
|
|
28
|
+
- `skill("cicd")` - GitHub Actions
|
|
29
|
+
- `skill("variables")` - Environment config
|
|
30
|
+
|
|
31
|
+
### Debugging
|
|
32
|
+
- `skill("debugging")` - Debug techniques
|
|
33
|
+
- `skill("logs")` - Log searching
|
|
34
|
+
- `skill("datadog")` - Observability tools
|
|
35
|
+
|
|
36
|
+
### AWS Integration
|
|
37
|
+
- `skill("aws")` - AWS tools overview
|
|
38
|
+
- `skill("dynamodb")` - DynamoDB patterns
|
|
39
|
+
- `skill("secrets")` - Secret management
|
|
40
|
+
|
|
41
|
+
## By Package
|
|
42
|
+
|
|
43
|
+
### jaypie (main package)
|
|
44
|
+
- `skill("jaypie")` - Overview
|
|
45
|
+
- `skill("errors")` - Error types
|
|
46
|
+
- `skill("logs")` - Logging
|
|
47
|
+
- `skill("secrets")` - Secret access
|
|
48
|
+
|
|
49
|
+
### @jaypie/constructs
|
|
50
|
+
- `skill("cdk")` - CDK constructs
|
|
51
|
+
|
|
52
|
+
### @jaypie/testkit
|
|
53
|
+
- `skill("mocks")` - Mock patterns
|
|
54
|
+
- `skill("tests")` - Test patterns
|
|
55
|
+
|
|
56
|
+
### @jaypie/fabric
|
|
57
|
+
- `skill("fabric")` - Service patterns
|
|
58
|
+
- `skill("services")` - Service layer
|
|
59
|
+
|
|
60
|
+
### Legacy Packages
|
|
61
|
+
- `skill("legacy")` - Deprecated patterns
|
|
62
|
+
|
|
63
|
+
## By Concept
|
|
64
|
+
|
|
65
|
+
### Error Handling
|
|
66
|
+
- `skill("errors")` - Error types and usage
|
|
67
|
+
|
|
68
|
+
### Environment Configuration
|
|
69
|
+
- `skill("variables")` - Environment variables
|
|
70
|
+
- `skill("secrets")` - Secret management
|
|
71
|
+
|
|
72
|
+
### Infrastructure
|
|
73
|
+
- `skill("cdk")` - CDK constructs
|
|
74
|
+
- `skill("aws")` - AWS integration
|
|
75
|
+
- `skill("dns")` - Domain configuration
|
|
76
|
+
|
|
77
|
+
### Observability
|
|
78
|
+
- `skill("logs")` - Logging patterns
|
|
79
|
+
- `skill("datadog")` - Datadog integration
|
|
80
|
+
- `skill("debugging")` - Debug techniques
|
|
81
|
+
|
|
82
|
+
### Data
|
|
83
|
+
- `skill("models")` - Data models and types
|
|
84
|
+
- `skill("dynamodb")` - DynamoDB patterns
|
|
85
|
+
|
|
86
|
+
## Quick Answers
|
|
87
|
+
|
|
88
|
+
### "How do I throw an error?"
|
|
89
|
+
```typescript
|
|
90
|
+
import { NotFoundError } from "jaypie";
|
|
91
|
+
throw new NotFoundError("Item not found");
|
|
92
|
+
```
|
|
93
|
+
See: `skill("errors")`
|
|
94
|
+
|
|
95
|
+
### "How do I mock Jaypie in tests?"
|
|
96
|
+
```typescript
|
|
97
|
+
vi.mock("jaypie", async () => {
|
|
98
|
+
const { mockJaypie } = await import("@jaypie/testkit");
|
|
99
|
+
return mockJaypie(vi);
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
See: `skill("mocks")`
|
|
103
|
+
|
|
104
|
+
### "How do I get a secret?"
|
|
105
|
+
```typescript
|
|
106
|
+
import { getSecret } from "jaypie";
|
|
107
|
+
const apiKey = await getSecret("my-api-key");
|
|
108
|
+
```
|
|
109
|
+
See: `skill("secrets")`
|
|
110
|
+
|
|
111
|
+
### "How do I log with context?"
|
|
112
|
+
```typescript
|
|
113
|
+
import { log } from "jaypie";
|
|
114
|
+
log.info("Operation completed", { userId, duration });
|
|
115
|
+
```
|
|
116
|
+
See: `skill("logs")`
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Environment variables reference
|
|
3
|
+
related: secrets, cdk, datadog
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Environment Variables
|
|
7
|
+
|
|
8
|
+
Configuration variables used in Jaypie applications.
|
|
9
|
+
|
|
10
|
+
## Project Variables
|
|
11
|
+
|
|
12
|
+
| Variable | Description | Values |
|
|
13
|
+
|----------|-------------|--------|
|
|
14
|
+
| `PROJECT_ENV` | Environment identifier | local, sandbox, kitchen, lab, studio, production |
|
|
15
|
+
| `PROJECT_KEY` | Project name for logging | e.g., my-api |
|
|
16
|
+
| `PROJECT_NONCE` | Unique resource suffix | e.g., dev, staging, prod |
|
|
17
|
+
| `PROJECT_CHAOS` | Chaos engineering mode | none, partial, full |
|
|
18
|
+
|
|
19
|
+
### Usage
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
const env = process.env.PROJECT_ENV || "local";
|
|
23
|
+
const key = process.env.PROJECT_KEY || "unknown";
|
|
24
|
+
|
|
25
|
+
log.info("Starting", { env, project: key });
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Node Environment
|
|
29
|
+
|
|
30
|
+
| Variable | Description | Values |
|
|
31
|
+
|----------|-------------|--------|
|
|
32
|
+
| `NODE_ENV` | Node.js environment | development, production, test |
|
|
33
|
+
| `LOG_LEVEL` | Logging verbosity | trace, debug, info, warn, error |
|
|
34
|
+
|
|
35
|
+
### Log Level in Development
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Very verbose
|
|
39
|
+
LOG_LEVEL=trace npm run dev
|
|
40
|
+
|
|
41
|
+
# Normal debugging
|
|
42
|
+
LOG_LEVEL=debug npm run dev
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## CDK Infrastructure Variables
|
|
46
|
+
|
|
47
|
+
| Variable | Description |
|
|
48
|
+
|----------|-------------|
|
|
49
|
+
| `CDK_ENV_BUCKET` | S3 bucket name |
|
|
50
|
+
| `CDK_ENV_QUEUE_URL` | SQS queue URL |
|
|
51
|
+
| `CDK_ENV_SNS_ROLE_ARN` | SNS role ARN |
|
|
52
|
+
| `CDK_ENV_SNS_TOPIC_ARN` | SNS topic ARN |
|
|
53
|
+
| `CDK_ENV_DATADOG_API_KEY_ARN` | Datadog API key ARN |
|
|
54
|
+
| `CDK_ENV_TABLE` | DynamoDB table name |
|
|
55
|
+
|
|
56
|
+
### Passing to Lambda
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const handler = new JaypieLambda(this, "Handler", {
|
|
60
|
+
environment: {
|
|
61
|
+
PROJECT_ENV: "production",
|
|
62
|
+
PROJECT_KEY: "my-api",
|
|
63
|
+
CDK_ENV_BUCKET: bucket.bucketName,
|
|
64
|
+
CDK_ENV_QUEUE_URL: queue.queueUrl,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Secret Variables
|
|
70
|
+
|
|
71
|
+
| Variable | Description |
|
|
72
|
+
|----------|-------------|
|
|
73
|
+
| `SECRET_MONGODB_URI` | MongoDB connection secret name |
|
|
74
|
+
| `SECRET_API_KEY` | Third-party API key secret name |
|
|
75
|
+
|
|
76
|
+
### Usage Pattern
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
// Secret name from env, value from Secrets Manager
|
|
80
|
+
const secretName = process.env.SECRET_MONGODB_URI;
|
|
81
|
+
const mongoUri = await getSecret(secretName);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## AWS Variables
|
|
85
|
+
|
|
86
|
+
| Variable | Description |
|
|
87
|
+
|----------|-------------|
|
|
88
|
+
| `AWS_PROFILE` | Default AWS profile |
|
|
89
|
+
| `AWS_REGION` | Default AWS region |
|
|
90
|
+
| `AWS_DEFAULT_REGION` | Fallback region |
|
|
91
|
+
| `AWS_SESSION_TOKEN` | Session token (Lambda runtime) |
|
|
92
|
+
| `AWS_ACCESS_KEY_ID` | Access key (if not using profile) |
|
|
93
|
+
| `AWS_SECRET_ACCESS_KEY` | Secret key (if not using profile) |
|
|
94
|
+
|
|
95
|
+
## Datadog Variables
|
|
96
|
+
|
|
97
|
+
| Variable | Description |
|
|
98
|
+
|----------|-------------|
|
|
99
|
+
| `DATADOG_API_KEY` or `DD_API_KEY` | API key |
|
|
100
|
+
| `DATADOG_APP_KEY` or `DD_APP_KEY` | Application key |
|
|
101
|
+
| `DD_ENV` | Environment tag |
|
|
102
|
+
| `DD_SERVICE` | Service name tag |
|
|
103
|
+
| `DD_VERSION` | Version tag |
|
|
104
|
+
| `DD_SOURCE` | Log source (default: lambda) |
|
|
105
|
+
|
|
106
|
+
### Unified Service Tagging
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
environment: {
|
|
110
|
+
DD_ENV: process.env.PROJECT_ENV,
|
|
111
|
+
DD_SERVICE: process.env.PROJECT_KEY,
|
|
112
|
+
DD_VERSION: process.env.npm_package_version,
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Local Development
|
|
117
|
+
|
|
118
|
+
### .env Files
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# .env.local (not committed)
|
|
122
|
+
PROJECT_ENV=local
|
|
123
|
+
PROJECT_KEY=my-api
|
|
124
|
+
LOG_LEVEL=debug
|
|
125
|
+
MONGODB_URI=mongodb://localhost:27017/dev
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Loading .env
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
import "dotenv/config";
|
|
132
|
+
|
|
133
|
+
// Or in package.json
|
|
134
|
+
"scripts": {
|
|
135
|
+
"dev": "dotenv -- node src/index.js"
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Environment Detection
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
const isProduction = process.env.PROJECT_ENV === "production";
|
|
143
|
+
const isLocal = process.env.PROJECT_ENV === "local";
|
|
144
|
+
const isDevelopment = !isProduction;
|
|
145
|
+
```
|
|
146
|
+
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Documentation and writing style
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Writing Style
|
|
6
|
+
|
|
7
|
+
Guidelines for writing Jaypie documentation.
|
|
8
|
+
|
|
9
|
+
## Principles
|
|
10
|
+
|
|
11
|
+
1. **Concise** - Fewer words, more clarity
|
|
12
|
+
2. **Scannable** - Use headings, lists, tables
|
|
13
|
+
3. **Actionable** - Show, don't tell
|
|
14
|
+
4. **Current** - Keep examples up to date
|
|
15
|
+
|
|
16
|
+
## Formatting
|
|
17
|
+
|
|
18
|
+
### Headings
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
# Page Title (H1 - one per file)
|
|
22
|
+
## Major Section (H2)
|
|
23
|
+
### Subsection (H3)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Code Blocks
|
|
27
|
+
|
|
28
|
+
Always specify language:
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { log } from "jaypie";
|
|
32
|
+
log.info("Message", { context });
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Lists
|
|
36
|
+
|
|
37
|
+
Use bullets for unordered items:
|
|
38
|
+
- First item
|
|
39
|
+
- Second item
|
|
40
|
+
|
|
41
|
+
Use numbers for sequential steps:
|
|
42
|
+
1. First step
|
|
43
|
+
2. Second step
|
|
44
|
+
|
|
45
|
+
### Tables
|
|
46
|
+
|
|
47
|
+
Use for structured comparisons:
|
|
48
|
+
|
|
49
|
+
| Option | Description |
|
|
50
|
+
|--------|-------------|
|
|
51
|
+
| `verbose` | Enable verbose logging |
|
|
52
|
+
| `timeout` | Request timeout in ms |
|
|
53
|
+
|
|
54
|
+
## Voice
|
|
55
|
+
|
|
56
|
+
- **Active voice**: "Run the command" not "The command should be run"
|
|
57
|
+
- **Present tense**: "Returns a string" not "Will return a string"
|
|
58
|
+
- **Second person**: "You can configure" not "Users can configure"
|
|
59
|
+
- **Imperative mood**: "Create a file" not "You should create a file"
|
|
60
|
+
|
|
61
|
+
## Code Examples
|
|
62
|
+
|
|
63
|
+
### Good Example
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
// Clear purpose
|
|
67
|
+
import { NotFoundError } from "jaypie";
|
|
68
|
+
|
|
69
|
+
throw new NotFoundError("User not found");
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Bad Example
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
// Avoid: no explanation, poor naming
|
|
76
|
+
import { NotFoundError } from "jaypie";
|
|
77
|
+
const e = new NotFoundError("err");
|
|
78
|
+
throw e;
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Structure
|
|
82
|
+
|
|
83
|
+
### Skill Files
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
---
|
|
87
|
+
description: Brief description for index listing
|
|
88
|
+
related: alias1, alias2
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
# Skill Title
|
|
92
|
+
|
|
93
|
+
One sentence overview.
|
|
94
|
+
|
|
95
|
+
## Quick Start
|
|
96
|
+
|
|
97
|
+
Minimal working example.
|
|
98
|
+
|
|
99
|
+
## Details
|
|
100
|
+
|
|
101
|
+
Deeper explanation with examples.
|
|
102
|
+
|
|
103
|
+
## Reference
|
|
104
|
+
|
|
105
|
+
Tables, options, API details.
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### README Files
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
# Package Name
|
|
112
|
+
|
|
113
|
+
One-line description.
|
|
114
|
+
|
|
115
|
+
## Installation
|
|
116
|
+
|
|
117
|
+
\`\`\`bash
|
|
118
|
+
npm install package-name
|
|
119
|
+
\`\`\`
|
|
120
|
+
|
|
121
|
+
## Usage
|
|
122
|
+
|
|
123
|
+
\`\`\`typescript
|
|
124
|
+
import { feature } from "package-name";
|
|
125
|
+
feature();
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
## API
|
|
129
|
+
|
|
130
|
+
Document exports.
|
|
131
|
+
|
|
132
|
+
## License
|
|
133
|
+
|
|
134
|
+
MIT
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Anti-Patterns
|
|
138
|
+
|
|
139
|
+
Avoid:
|
|
140
|
+
- Long paragraphs (use lists)
|
|
141
|
+
- Vague language ("various", "etc.")
|
|
142
|
+
- Redundant words ("in order to" → "to")
|
|
143
|
+
- Future promises ("will be added")
|
|
144
|
+
- Passive voice ("is used by" → "uses")
|
|
145
|
+
|
|
146
|
+
## Checklist
|
|
147
|
+
|
|
148
|
+
Before publishing:
|
|
149
|
+
- [ ] Code examples run without errors
|
|
150
|
+
- [ ] All links work
|
|
151
|
+
- [ ] No placeholder text
|
|
152
|
+
- [ ] Spelling and grammar checked
|
|
153
|
+
- [ ] Frontmatter complete
|