@fenixforce/edition-pro 0.1.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/dist/api/approval-routes.d.ts +15 -0
- package/dist/api/fleet-routes.d.ts +23 -0
- package/dist/api/integration-routes.d.ts +17 -0
- package/dist/api/middleware.d.ts +37 -0
- package/dist/boot.d.ts +37 -0
- package/dist/business/approval-queue.d.ts +94 -0
- package/dist/business/arena.d.ts +71 -0
- package/dist/business/best-of-n.d.ts +68 -0
- package/dist/business/brainstorm.d.ts +42 -0
- package/dist/business/compile-checker.d.ts +50 -0
- package/dist/business/debate.d.ts +38 -0
- package/dist/business/fleet-budget.d.ts +69 -0
- package/dist/business/fleet-config.d.ts +125 -0
- package/dist/business/fleet.d.ts +85 -0
- package/dist/business/handoff.d.ts +56 -0
- package/dist/business/hat-system.d.ts +57 -0
- package/dist/business/index.d.ts +44 -0
- package/dist/business/integration-registry.d.ts +66 -0
- package/dist/business/node-pipeline.d.ts +62 -0
- package/dist/business/oracle.d.ts +64 -0
- package/dist/business/roles/index.d.ts +7 -0
- package/dist/business/roles/judge.d.ts +24 -0
- package/dist/business/roles/planner.d.ts +30 -0
- package/dist/business/roles/types.d.ts +37 -0
- package/dist/business/roles/worker.d.ts +25 -0
- package/dist/business/router.d.ts +75 -0
- package/dist/business/shared-memory.d.ts +85 -0
- package/dist/business/status-detector.d.ts +52 -0
- package/dist/business/swarm-registry.d.ts +63 -0
- package/dist/business/templates.d.ts +55 -0
- package/dist/business/workspace-manager.d.ts +105 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +638 -0
- package/dist/infrastructure/pty-agent.d.ts +74 -0
- package/dist/migrations/migrate.d.ts +7 -0
- package/dist/migrations/runner.d.ts +49 -0
- package/dist/workspace/worktree.d.ts +69 -0
- package/package.json +37 -0
- package/skills/builtin/academic-researcher/SKILL.md +51 -0
- package/skills/builtin/advanced-recon/SKILL.md +75 -0
- package/skills/builtin/agent-governance/SKILL.md +122 -0
- package/skills/builtin/algorithmic-art/SKILL.md +55 -0
- package/skills/builtin/api-attack-surface-mapper/SKILL.md +88 -0
- package/skills/builtin/api-development/SKILL.md +147 -0
- package/skills/builtin/api-exploit-prover/SKILL.md +74 -0
- package/skills/builtin/api-integration/SKILL.md +73 -0
- package/skills/builtin/api-security-tester/SKILL.md +82 -0
- package/skills/builtin/api-test-executor/SKILL.md +62 -0
- package/skills/builtin/app-store-optimization/SKILL.md +46 -0
- package/skills/builtin/audio-tour-guide/SKILL.md +18 -0
- package/skills/builtin/auth-flow-operator/SKILL.md +70 -0
- package/skills/builtin/autonomous-rag/SKILL.md +21 -0
- package/skills/builtin/backend-development/SKILL.md +265 -0
- package/skills/builtin/binary-analysis-analyst/SKILL.md +61 -0
- package/skills/builtin/binary-analysis-core/SKILL.md +65 -0
- package/skills/builtin/binary-recon/SKILL.md +64 -0
- package/skills/builtin/blackboard-coordination/SKILL.md +56 -0
- package/skills/builtin/blog-to-podcast/SKILL.md +18 -0
- package/skills/builtin/blog-writing/SKILL.md +36 -0
- package/skills/builtin/brainstorming/SKILL.md +69 -0
- package/skills/builtin/brand-design/SKILL.md +42 -0
- package/skills/builtin/ci-cd-pipelines/SKILL.md +210 -0
- package/skills/builtin/cloud-infrastructure/SKILL.md +140 -0
- package/skills/builtin/code-review/SKILL.md +88 -0
- package/skills/builtin/code-review-analyst/SKILL.md +96 -0
- package/skills/builtin/code-review-recon/SKILL.md +64 -0
- package/skills/builtin/code-review-verifier/SKILL.md +55 -0
- package/skills/builtin/coding-agent-team/SKILL.md +13 -0
- package/skills/builtin/competitor-intelligence/SKILL.md +39 -0
- package/skills/builtin/content-engine/SKILL.md +82 -0
- package/skills/builtin/context7-docs/SKILL.md +145 -0
- package/skills/builtin/copywriting/SKILL.md +38 -0
- package/skills/builtin/corrective-rag/SKILL.md +19 -0
- package/skills/builtin/cost-optimization/SKILL.md +131 -0
- package/skills/builtin/crypto-vulnerability-analyst/SKILL.md +64 -0
- package/skills/builtin/customer-support/SKILL.md +48 -0
- package/skills/builtin/customer-voice-support/SKILL.md +43 -0
- package/skills/builtin/data-analysis/SKILL.md +57 -0
- package/skills/builtin/data-visualization/SKILL.md +33 -0
- package/skills/builtin/database-design/SKILL.md +119 -0
- package/skills/builtin/decision-helper/SKILL.md +84 -0
- package/skills/builtin/deep-research/SKILL.md +68 -0
- package/skills/builtin/deepwiki-research/SKILL.md +115 -0
- package/skills/builtin/dependency-audit/SKILL.md +46 -0
- package/skills/builtin/doc-coauthoring/SKILL.md +48 -0
- package/skills/builtin/docker-deployment/SKILL.md +243 -0
- package/skills/builtin/docx-generation/SKILL.md +135 -0
- package/skills/builtin/dry-run-harness/SKILL.md +61 -0
- package/skills/builtin/editor/SKILL.md +44 -0
- package/skills/builtin/email-drafter/SKILL.md +42 -0
- package/skills/builtin/error-handling/SKILL.md +82 -0
- package/skills/builtin/eval-harness/SKILL.md +197 -0
- package/skills/builtin/evaluation-framework/SKILL.md +51 -0
- package/skills/builtin/exploit-writer/SKILL.md +63 -0
- package/skills/builtin/fact-checker/SKILL.md +51 -0
- package/skills/builtin/filesystem-context/SKILL.md +47 -0
- package/skills/builtin/financial-coach/SKILL.md +18 -0
- package/skills/builtin/finding-chain-correlator/SKILL.md +70 -0
- package/skills/builtin/finding-verifier/SKILL.md +65 -0
- package/skills/builtin/frontend-design/SKILL.md +104 -0
- package/skills/builtin/frontend-development/SKILL.md +227 -0
- package/skills/builtin/frontend-slides/SKILL.md +155 -0
- package/skills/builtin/fullstack-project/SKILL.md +286 -0
- package/skills/builtin/game-development/SKILL.md +60 -0
- package/skills/builtin/git-workflow/SKILL.md +44 -0
- package/skills/builtin/i18n-localization/SKILL.md +38 -0
- package/skills/builtin/image-prompt-engineering/SKILL.md +37 -0
- package/skills/builtin/investment-research/SKILL.md +33 -0
- package/skills/builtin/investor-materials/SKILL.md +90 -0
- package/skills/builtin/javascript-surface-analyzer/SKILL.md +66 -0
- package/skills/builtin/markdown-reports/SKILL.md +68 -0
- package/skills/builtin/market-research/SKILL.md +69 -0
- package/skills/builtin/mcp-builder/SKILL.md +86 -0
- package/skills/builtin/meeting-notes/SKILL.md +47 -0
- package/skills/builtin/memory-safety-analyst/SKILL.md +61 -0
- package/skills/builtin/meta-controller/SKILL.md +44 -0
- package/skills/builtin/mixture-of-agents/SKILL.md +53 -0
- package/skills/builtin/monitoring-observability/SKILL.md +169 -0
- package/skills/builtin/negotiation-simulator/SKILL.md +24 -0
- package/skills/builtin/nestjs-development/SKILL.md +56 -0
- package/skills/builtin/nextjs-development/SKILL.md +55 -0
- package/skills/builtin/parallel-dispatch/SKILL.md +83 -0
- package/skills/builtin/pdf-generation/SKILL.md +169 -0
- package/skills/builtin/personal-finance/SKILL.md +17 -0
- package/skills/builtin/pev-workflow/SKILL.md +62 -0
- package/skills/builtin/planning-with-files/SKILL.md +59 -0
- package/skills/builtin/pptx-generation/SKILL.md +117 -0
- package/skills/builtin/prisma-orm/SKILL.md +48 -0
- package/skills/builtin/rag-database-routing/SKILL.md +38 -0
- package/skills/builtin/rapid-prototyping/SKILL.md +152 -0
- package/skills/builtin/react-development/SKILL.md +244 -0
- package/skills/builtin/react-native-mobile/SKILL.md +113 -0
- package/skills/builtin/refactoring/SKILL.md +39 -0
- package/skills/builtin/reflexive-metacognition/SKILL.md +29 -0
- package/skills/builtin/riper-workflow/SKILL.md +214 -0
- package/skills/builtin/security-audit/SKILL.md +113 -0
- package/skills/builtin/security-self-audit/SKILL.md +311 -0
- package/skills/builtin/self-evolving-agent/SKILL.md +28 -0
- package/skills/builtin/self-improvement-loop/SKILL.md +58 -0
- package/skills/builtin/semantic-search/SKILL.md +93 -0
- package/skills/builtin/seo-audit-team/SKILL.md +27 -0
- package/skills/builtin/seo-optimization/SKILL.md +49 -0
- package/skills/builtin/server-management/SKILL.md +190 -0
- package/skills/builtin/social-media-content/SKILL.md +50 -0
- package/skills/builtin/sprint-planner/SKILL.md +49 -0
- package/skills/builtin/strategic-compact/SKILL.md +61 -0
- package/skills/builtin/strategy-advisor/SKILL.md +51 -0
- package/skills/builtin/structured-thinking/SKILL.md +70 -0
- package/skills/builtin/subagent-development/SKILL.md +105 -0
- package/skills/builtin/system-design/SKILL.md +66 -0
- package/skills/builtin/systematic-debugging/SKILL.md +87 -0
- package/skills/builtin/tailwind-css/SKILL.md +55 -0
- package/skills/builtin/taint-flow-tracer/SKILL.md +89 -0
- package/skills/builtin/teaching-agent-team/SKILL.md +32 -0
- package/skills/builtin/tech-debt-manager/SKILL.md +67 -0
- package/skills/builtin/technical-documentation/SKILL.md +47 -0
- package/skills/builtin/test-driven-development/SKILL.md +70 -0
- package/skills/builtin/theme-factory/SKILL.md +244 -0
- package/skills/builtin/threat-model-generator/SKILL.md +105 -0
- package/skills/builtin/trust-layer/SKILL.md +43 -0
- package/skills/builtin/typescript-patterns/SKILL.md +61 -0
- package/skills/builtin/ui-ux-design/SKILL.md +75 -0
- package/skills/builtin/verification-before-completion/SKILL.md +41 -0
- package/skills/builtin/verification-loop/SKILL.md +120 -0
- package/skills/builtin/waf-bypass-agent/SKILL.md +97 -0
- package/skills/builtin/web-artifacts-builder/SKILL.md +117 -0
- package/skills/builtin/web-assessment-executor/SKILL.md +66 -0
- package/skills/builtin/web-exploit-prover/SKILL.md +58 -0
- package/skills/builtin/web-scraping/SKILL.md +63 -0
- package/skills/builtin/webapp-testing/SKILL.md +86 -0
- package/skills/builtin/webhook-development/SKILL.md +62 -0
- package/skills/builtin/writing-skills/SKILL.md +67 -0
- package/skills/builtin/xlsx-generation/SKILL.md +116 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-development
|
|
3
|
+
description: "Use this skill when the user asks to design an API, create API documentation, build REST or GraphQL endpoints, handle API versioning, or implement API patterns like pagination, filtering, and rate limiting. Triggers: 'API design', 'REST API', 'GraphQL', 'API documentation', 'OpenAPI', 'Swagger', 'endpoint design', 'pagination', 'API versioning', or requests focused specifically on API architecture and contracts."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# API Development
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Design, document, and build APIs. REST conventions, GraphQL schemas, versioning strategy, pagination, filtering, error contracts, and OpenAPI documentation.
|
|
12
|
+
|
|
13
|
+
## Before You Start
|
|
14
|
+
|
|
15
|
+
1. **Context7:** Fetch docs for the API framework (Hono, Express, Fastify, etc.)
|
|
16
|
+
2. **Clarify scope:** New API design, adding endpoints, or documenting existing?
|
|
17
|
+
|
|
18
|
+
## REST API Design
|
|
19
|
+
|
|
20
|
+
### URL Conventions
|
|
21
|
+
```
|
|
22
|
+
/api/v1/users # Collection
|
|
23
|
+
/api/v1/users/:id # Single resource
|
|
24
|
+
/api/v1/users/:id/posts # Nested resource
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Rules:
|
|
28
|
+
- Plural nouns (`/users` not `/user`)
|
|
29
|
+
- No verbs (`POST /users` not `POST /createUser`)
|
|
30
|
+
- Lowercase, hyphenated
|
|
31
|
+
- Max 3 levels of nesting
|
|
32
|
+
|
|
33
|
+
### Pagination
|
|
34
|
+
```
|
|
35
|
+
GET /api/v1/posts?page=2&limit=20
|
|
36
|
+
|
|
37
|
+
Response:
|
|
38
|
+
{
|
|
39
|
+
"data": [...],
|
|
40
|
+
"meta": { "page": 2, "limit": 20, "total": 156, "totalPages": 8, "hasNext": true }
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Cursor-based for large datasets:
|
|
45
|
+
```
|
|
46
|
+
GET /api/v1/posts?cursor=eyJpZCI6MTAwfQ&limit=20
|
|
47
|
+
Response: { "data": [...], "meta": { "nextCursor": "...", "hasMore": true } }
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Filtering and Sorting
|
|
51
|
+
```
|
|
52
|
+
GET /api/v1/posts?status=published&author=123&sort=-createdAt,title&fields=id,title
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Error Response Contract
|
|
56
|
+
```typescript
|
|
57
|
+
interface ErrorResponse {
|
|
58
|
+
error: {
|
|
59
|
+
code: string; // "VALIDATION_ERROR"
|
|
60
|
+
message: string; // "Email is required"
|
|
61
|
+
details?: Array<{ field: string; message: string; code: string }>;
|
|
62
|
+
requestId?: string;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Standard codes: `VALIDATION_ERROR` 422, `NOT_FOUND` 404, `UNAUTHORIZED` 401, `FORBIDDEN` 403, `CONFLICT` 409, `RATE_LIMITED` 429, `INTERNAL_ERROR` 500
|
|
68
|
+
|
|
69
|
+
### Versioning
|
|
70
|
+
URL-based: `/api/v1/users`, `/api/v2/users`. Bump major only for breaking changes. Support previous version 6+ months.
|
|
71
|
+
|
|
72
|
+
## GraphQL API Design
|
|
73
|
+
|
|
74
|
+
```graphql
|
|
75
|
+
type User {
|
|
76
|
+
id: ID!
|
|
77
|
+
email: String!
|
|
78
|
+
name: String!
|
|
79
|
+
posts(first: Int, after: String): PostConnection!
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
type Query {
|
|
83
|
+
user(id: ID!): User
|
|
84
|
+
users(first: Int, after: String, filter: UserFilter): UserConnection!
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type Mutation {
|
|
88
|
+
createPost(input: CreatePostInput!): Post!
|
|
89
|
+
updatePost(id: ID!, input: UpdatePostInput!): Post!
|
|
90
|
+
deletePost(id: ID!): Boolean!
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Relay-Style Connections
|
|
95
|
+
```graphql
|
|
96
|
+
type PostConnection {
|
|
97
|
+
edges: [PostEdge!]!
|
|
98
|
+
pageInfo: PageInfo!
|
|
99
|
+
totalCount: Int!
|
|
100
|
+
}
|
|
101
|
+
type PostEdge { node: Post!; cursor: String! }
|
|
102
|
+
type PageInfo { hasNextPage: Boolean!; endCursor: String }
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## OpenAPI Documentation
|
|
106
|
+
|
|
107
|
+
```yaml
|
|
108
|
+
openapi: 3.1.0
|
|
109
|
+
info:
|
|
110
|
+
title: My API
|
|
111
|
+
version: 1.0.0
|
|
112
|
+
paths:
|
|
113
|
+
/api/v1/users:
|
|
114
|
+
get:
|
|
115
|
+
summary: List users
|
|
116
|
+
parameters:
|
|
117
|
+
- name: page
|
|
118
|
+
in: query
|
|
119
|
+
schema: { type: integer, default: 1 }
|
|
120
|
+
responses:
|
|
121
|
+
"200":
|
|
122
|
+
description: Paginated user list
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Always generate OpenAPI specs for REST APIs.
|
|
126
|
+
|
|
127
|
+
## Rules
|
|
128
|
+
|
|
129
|
+
- Every endpoint must have input validation
|
|
130
|
+
- Every endpoint must return consistent error format
|
|
131
|
+
- Pagination is required for any list endpoint
|
|
132
|
+
- Rate limiting must be documented per endpoint
|
|
133
|
+
- Auth requirements must be explicit per endpoint
|
|
134
|
+
- CORS must be configured explicitly, never wildcard in production
|
|
135
|
+
|
|
136
|
+
## Verification
|
|
137
|
+
|
|
138
|
+
1. Every endpoint responds with correct status codes
|
|
139
|
+
2. Pagination works with edge cases
|
|
140
|
+
3. Validation rejects bad input with descriptive errors
|
|
141
|
+
4. Auth protected endpoints reject unauthenticated requests
|
|
142
|
+
5. OpenAPI spec or equivalent documentation exists
|
|
143
|
+
|
|
144
|
+
## Integration with Other Skills
|
|
145
|
+
|
|
146
|
+
- **backend-development:** Handles implementation. This skill handles design.
|
|
147
|
+
- **context7-docs:** Fetch framework docs before implementing endpoints
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# API Exploit Prover
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Convert API vulnerability leads into confirmed impact or cleanly disproven outcomes with reproducible evidence.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
- `candidate_findings`
|
|
8
|
+
- `target_base_url`
|
|
9
|
+
- `auth_and_role_context`
|
|
10
|
+
- `test_data_or_seed_objects`
|
|
11
|
+
- `constraints` (noise limits, forbidden write actions)
|
|
12
|
+
|
|
13
|
+
## Confidence Model
|
|
14
|
+
- `C0`: hypothesis only
|
|
15
|
+
- `C1`: suspicious signal
|
|
16
|
+
- `C2`: reproducible behavior anomaly
|
|
17
|
+
- `C3`: exploit primitive proven
|
|
18
|
+
- `C4`: business impact proven
|
|
19
|
+
|
|
20
|
+
## Execution Workflow
|
|
21
|
+
### Phase 1: Reproduction Baseline
|
|
22
|
+
1. Replay original request as control.
|
|
23
|
+
2. Capture stable baseline across repeated requests.
|
|
24
|
+
3. Validate request preconditions (auth, ownership, object existence).
|
|
25
|
+
|
|
26
|
+
### Phase 2: Alternative Technique Check
|
|
27
|
+
1. Re-test with a different method than original lead.
|
|
28
|
+
2. Vary payload shape and transport encoding.
|
|
29
|
+
3. Confirm behavior survives minor variance.
|
|
30
|
+
|
|
31
|
+
### Phase 3: Impact Escalation
|
|
32
|
+
1. Attempt controlled state change or unauthorized data access.
|
|
33
|
+
2. Test cross-tenant and cross-role boundaries where legal.
|
|
34
|
+
3. Validate whether impact persists after session/token refresh.
|
|
35
|
+
|
|
36
|
+
### Phase 4: Confounder Elimination
|
|
37
|
+
1. Rule out caching and stale object state.
|
|
38
|
+
2. Rule out test-environment race artifacts.
|
|
39
|
+
3. Rule out expected business behavior incorrectly interpreted as vulnerability.
|
|
40
|
+
|
|
41
|
+
### Phase 5: Classification
|
|
42
|
+
1. `confirmed` only when exploit and impact are replayable.
|
|
43
|
+
2. `disputed` when mitigation or expected behavior is proven.
|
|
44
|
+
3. `inconclusive` when blockers prevent decision.
|
|
45
|
+
|
|
46
|
+
## Technique Rules by Vulnerability Type
|
|
47
|
+
| Type | Rule |
|
|
48
|
+
|---|---|
|
|
49
|
+
| BOLA/BFLA | Must show unauthorized object or action with foreign identifier |
|
|
50
|
+
| Injection | Must show parser/engine effect beyond literal handling |
|
|
51
|
+
| Mass assignment | Must show unauthorized field control and persisted impact |
|
|
52
|
+
| SSRF | Must prove outbound request/control over target or metadata access |
|
|
53
|
+
| Rate abuse | Must show bypass of intended limit with practical impact |
|
|
54
|
+
|
|
55
|
+
## Output Contract
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"confirmed_findings": [],
|
|
59
|
+
"disputed_findings": [],
|
|
60
|
+
"inconclusive_findings": [],
|
|
61
|
+
"evidence": [],
|
|
62
|
+
"confidence": []
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Failure Modes
|
|
67
|
+
- Single-shot confirmation without retest.
|
|
68
|
+
- Treating error differences as exploit proof.
|
|
69
|
+
- Claiming impact without business-context validation.
|
|
70
|
+
|
|
71
|
+
## Quality Checklist
|
|
72
|
+
- [ ] Every finding has final status and explicit reason.
|
|
73
|
+
- [ ] Confirmed findings include replayable impact proof.
|
|
74
|
+
- [ ] Inconclusive findings list unblockers.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-integration
|
|
3
|
+
description: "Use this skill when connecting to third-party APIs, handling OAuth, managing API keys, implementing pagination, or building service connectors. Triggers: 'integrate with', 'connect to', 'API client', 'OAuth', 'third-party', 'external service', or any request to consume an external API."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# API Integration
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Connect to third-party APIs reliably. Authentication, pagination, rate limiting, error handling, retry logic, and type-safe API clients.
|
|
12
|
+
|
|
13
|
+
## API Client Pattern
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
class ApiClient {
|
|
17
|
+
constructor(
|
|
18
|
+
private baseUrl: string,
|
|
19
|
+
private apiKey: string,
|
|
20
|
+
private maxRetries = 3
|
|
21
|
+
) {}
|
|
22
|
+
|
|
23
|
+
async request<T>(path: string, options: RequestInit = {}): Promise<T> {
|
|
24
|
+
const url = `${this.baseUrl}${path}`;
|
|
25
|
+
let lastError: Error | null = null;
|
|
26
|
+
|
|
27
|
+
for (let attempt = 0; attempt < this.maxRetries; attempt++) {
|
|
28
|
+
try {
|
|
29
|
+
const res = await fetch(url, {
|
|
30
|
+
...options,
|
|
31
|
+
headers: {
|
|
32
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
33
|
+
"Content-Type": "application/json",
|
|
34
|
+
...options.headers,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
if (res.status === 429) {
|
|
39
|
+
const retryAfter = parseInt(res.headers.get("retry-after") || "5");
|
|
40
|
+
await sleep(retryAfter * 1000);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
|
|
45
|
+
return await res.json() as T;
|
|
46
|
+
} catch (err) {
|
|
47
|
+
lastError = err as Error;
|
|
48
|
+
if (attempt < this.maxRetries - 1) await sleep(2 ** attempt * 1000);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
throw lastError;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Auth Patterns
|
|
57
|
+
|
|
58
|
+
| Method | Implementation |
|
|
59
|
+
|--------|---------------|
|
|
60
|
+
| API Key | Header: `Authorization: Bearer <key>` or `X-API-Key: <key>` |
|
|
61
|
+
| OAuth 2.0 | Authorization code flow with PKCE for web, client credentials for server |
|
|
62
|
+
| Basic Auth | Header: `Authorization: Basic <base64(user:pass)>` |
|
|
63
|
+
| Webhook Signature | HMAC-SHA256 verification of request body |
|
|
64
|
+
|
|
65
|
+
## Rules
|
|
66
|
+
|
|
67
|
+
- Always implement retry with exponential backoff
|
|
68
|
+
- Always respect rate limits (read headers: `X-RateLimit-Remaining`, `Retry-After`)
|
|
69
|
+
- Never log API keys or tokens
|
|
70
|
+
- Type all API responses (never use `any`)
|
|
71
|
+
- Handle pagination (don't assume single-page responses)
|
|
72
|
+
- Set reasonable timeouts (10-30 seconds)
|
|
73
|
+
- Cache responses where appropriate (respect Cache-Control headers)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# API Security Tester
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Run a complete API assessment cycle with strong evidence discipline and predictable output.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
- `target_base_url`
|
|
8
|
+
- `api_spec_or_collection`
|
|
9
|
+
- `auth_context`
|
|
10
|
+
- `engagement_rules`
|
|
11
|
+
|
|
12
|
+
## Standard Test Order
|
|
13
|
+
1. Discovery and endpoint normalization.
|
|
14
|
+
2. Auth and authorization checks.
|
|
15
|
+
3. Input handling and injection checks.
|
|
16
|
+
4. Workflow and state-machine abuse checks.
|
|
17
|
+
5. Impact confirmation and verification.
|
|
18
|
+
|
|
19
|
+
## Execution Workflow
|
|
20
|
+
### Phase 1: Discovery
|
|
21
|
+
- Build endpoint and trust map.
|
|
22
|
+
- Confirm content types, schema validation, and versioning.
|
|
23
|
+
- Identify sensitive operations and privileged paths.
|
|
24
|
+
|
|
25
|
+
### Phase 2: Access Control
|
|
26
|
+
- Test object-level access control.
|
|
27
|
+
- Test function-level authorization by role.
|
|
28
|
+
- Test tenant boundary isolation.
|
|
29
|
+
|
|
30
|
+
### Phase 3: Input Abuse
|
|
31
|
+
- Injection candidates by sink class.
|
|
32
|
+
- Mass assignment on create/update.
|
|
33
|
+
- Filter/operator abuse on search APIs.
|
|
34
|
+
|
|
35
|
+
### Phase 4: Workflow Abuse
|
|
36
|
+
- Bypass prerequisite steps.
|
|
37
|
+
- Replay or reorder transitions.
|
|
38
|
+
- Abuse bulk and async operations.
|
|
39
|
+
|
|
40
|
+
### Phase 5: Verification
|
|
41
|
+
- Independently confirm positives.
|
|
42
|
+
- Capture remediation-relevant root cause.
|
|
43
|
+
- Downgrade or dispute weak findings.
|
|
44
|
+
|
|
45
|
+
## Minimum Test Matrix
|
|
46
|
+
| Category | Required Assertions |
|
|
47
|
+
|---|---|
|
|
48
|
+
| Authentication | unauthenticated access rejected consistently |
|
|
49
|
+
| Authorization | foreign objects and privileged actions are blocked |
|
|
50
|
+
| Input validation | malformed and malicious payloads handled safely |
|
|
51
|
+
| Error handling | no internal leakage in error bodies |
|
|
52
|
+
| State transitions | invalid transitions rejected |
|
|
53
|
+
| Rate limiting | sensitive operations throttled |
|
|
54
|
+
|
|
55
|
+
## Output Contract
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"scope_summary": {},
|
|
59
|
+
"test_log": [],
|
|
60
|
+
"confirmed_vulnerabilities": [],
|
|
61
|
+
"verification_notes": [],
|
|
62
|
+
"remediation_guidance": []
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Constraints
|
|
67
|
+
- Keep tests reproducible and proportional.
|
|
68
|
+
- Do not overclaim severity without business impact.
|
|
69
|
+
|
|
70
|
+
## Quality Checklist
|
|
71
|
+
- [ ] Coverage includes auth, authz, input, workflow.
|
|
72
|
+
- [ ] Findings include clear exploit path.
|
|
73
|
+
- [ ] Remediation ties to code/control failure.
|
|
74
|
+
|
|
75
|
+
## Conditional Decision Matrix
|
|
76
|
+
| Condition | Action | Evidence Requirement |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Endpoint undocumented but reachable | Add to inventory and prioritize authz checks | request/response baseline + auth behavior |
|
|
79
|
+
| Auth behavior inconsistent across methods | Split tests by method and content type | per-method status + body signatures |
|
|
80
|
+
| Time-based anomaly only | run matched control timing series | repeated control/test timing traces |
|
|
81
|
+
| Object access differs by role | escalate to cross-tenant/cross-role checks | role-tagged replay proof |
|
|
82
|
+
| Validation differs by parser | run semantic-equivalent content-type tests | parser-path differential evidence |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# API Test Executor
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Run assigned API test cases exactly as scoped and return high-integrity evidence.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
- `target_base_url`
|
|
8
|
+
- `test_plan`
|
|
9
|
+
- `auth_material`
|
|
10
|
+
- `data_seeds`
|
|
11
|
+
- `retry_policy`
|
|
12
|
+
|
|
13
|
+
## Preflight
|
|
14
|
+
- [ ] Test plan identifiers are unique.
|
|
15
|
+
- [ ] Required accounts/tokens are valid.
|
|
16
|
+
- [ ] Seed data exists and is not stale.
|
|
17
|
+
- [ ] Retry policy is defined.
|
|
18
|
+
|
|
19
|
+
## Execution Workflow
|
|
20
|
+
### Phase 1: Case Preparation
|
|
21
|
+
1. Resolve each case precondition.
|
|
22
|
+
2. Attach correct role context.
|
|
23
|
+
3. Build request template and expected baseline.
|
|
24
|
+
|
|
25
|
+
### Phase 2: Deterministic Execution
|
|
26
|
+
1. Run case with exact payload and headers.
|
|
27
|
+
2. Capture full response metadata and body hash.
|
|
28
|
+
3. Apply retries only under policy.
|
|
29
|
+
|
|
30
|
+
### Phase 3: Outcome Classification
|
|
31
|
+
1. `pass` when expected secure behavior observed.
|
|
32
|
+
2. `fail` when expected secure behavior breaks.
|
|
33
|
+
3. `blocked` when environment prevents valid execution.
|
|
34
|
+
4. `inconclusive` when signal is unstable.
|
|
35
|
+
|
|
36
|
+
### Phase 4: Evidence Packaging
|
|
37
|
+
1. Store request/response artifacts.
|
|
38
|
+
2. Map artifact to case ID.
|
|
39
|
+
3. Add concise analyst note for anomalies.
|
|
40
|
+
|
|
41
|
+
## Required Logging Fields
|
|
42
|
+
- `case_id`, `timestamp_utc`, `role_context`, `request_signature`
|
|
43
|
+
- `status_code`, `response_signature`, `verdict`
|
|
44
|
+
|
|
45
|
+
## Output Contract
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"case_results": [],
|
|
49
|
+
"evidence_index": [],
|
|
50
|
+
"blocked_cases": [],
|
|
51
|
+
"environment_notes": []
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Constraints
|
|
56
|
+
- Do not expand scope.
|
|
57
|
+
- Do not mutate payloads outside case definition.
|
|
58
|
+
|
|
59
|
+
## Quality Checklist
|
|
60
|
+
- [ ] Every case has terminal status.
|
|
61
|
+
- [ ] Evidence references are complete.
|
|
62
|
+
- [ ] Blockers include concrete unblock requests.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-store-optimization
|
|
3
|
+
description: "Use this skill for App Store and Google Play optimization: metadata, keywords, screenshots, A/B testing, and review management. Triggers: 'ASO', 'app store', 'Google Play', 'app listing', 'app keywords', 'app screenshots', 'app ratings', or requests to improve app store presence."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# App Store Optimization
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Optimize mobile app listings for discoverability and conversion. Keyword strategy, metadata, visual assets, and review management.
|
|
12
|
+
|
|
13
|
+
## App Store Metadata
|
|
14
|
+
|
|
15
|
+
### iOS App Store
|
|
16
|
+
- App Name: 30 chars (include primary keyword)
|
|
17
|
+
- Subtitle: 30 chars (secondary keyword)
|
|
18
|
+
- Keywords: 100 chars (comma-separated, no spaces after commas)
|
|
19
|
+
- Description: 4000 chars (first 3 lines visible before "more")
|
|
20
|
+
- Promotional Text: 170 chars (can update without review)
|
|
21
|
+
|
|
22
|
+
### Google Play
|
|
23
|
+
- Title: 30 chars
|
|
24
|
+
- Short Description: 80 chars
|
|
25
|
+
- Full Description: 4000 chars (keyword-rich, formatted)
|
|
26
|
+
|
|
27
|
+
## Keyword Strategy
|
|
28
|
+
|
|
29
|
+
1. Research competitor keywords (use App Annie, Sensor Tower, or manual search)
|
|
30
|
+
2. Target: high volume + low competition keywords
|
|
31
|
+
3. Include in: title, subtitle/short description, keyword field
|
|
32
|
+
4. Track rankings weekly and adjust quarterly
|
|
33
|
+
|
|
34
|
+
## Visual Assets
|
|
35
|
+
|
|
36
|
+
- Screenshots: show the app in action with value-proposition captions
|
|
37
|
+
- First 2 screenshots are most important (visible before scrolling)
|
|
38
|
+
- App preview video: 15-30 seconds showing core feature
|
|
39
|
+
- Icon: simple, recognizable at small sizes, no text
|
|
40
|
+
|
|
41
|
+
## Rules
|
|
42
|
+
|
|
43
|
+
- Update keywords quarterly based on ranking data
|
|
44
|
+
- Respond to all 1-2 star reviews within 48 hours
|
|
45
|
+
- A/B test screenshots and descriptions (Google Play Experiments)
|
|
46
|
+
- Localize listings for top markets (at minimum: English, Spanish, Portuguese, French, German, Japanese)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Audio Tour Guide
|
|
2
|
+
## Multi-Agent Pipeline
|
|
3
|
+
1. **Architecture Agent**: describe buildings, design elements, urban planning (with web search for current info)
|
|
4
|
+
2. **History Agent**: historical context, significant events, cultural evolution
|
|
5
|
+
3. **Culture Agent**: local customs, food, art, community life
|
|
6
|
+
|
|
7
|
+
Each agent produces conversational content within strict word limits (natural speech, no headings or formatting).
|
|
8
|
+
|
|
9
|
+
## Voice Output Rules
|
|
10
|
+
- Content must sound natural when spoken aloud
|
|
11
|
+
- No markdown formatting, bullet points, or headings in the output
|
|
12
|
+
- Spell out numbers: "one hundred and fifty" not "150"
|
|
13
|
+
- No citations or links (spoken output)
|
|
14
|
+
- Word count per segment: 100-200 words (45-90 seconds of speech)
|
|
15
|
+
- Transitions between segments should flow naturally
|
|
16
|
+
|
|
17
|
+
## Integration
|
|
18
|
+
Uses Fenix voice pipeline: text → TTS → audio output. Each agent's output concatenated with smooth transitions.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Auth Flow Operator
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Securely obtain reliable authenticated context for downstream security testing.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
- `target_url`
|
|
8
|
+
- `known_credentials` (optional)
|
|
9
|
+
- `auth_notes` (MFA, email verification, SSO, CAPTCHA)
|
|
10
|
+
- `allowed_test_accounts` policy
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
### Phase 1: Route Discovery
|
|
14
|
+
1. Identify login, registration, password reset, token refresh, logout paths.
|
|
15
|
+
2. Determine auth mode: local creds, SSO, OTP, magic link, API token.
|
|
16
|
+
|
|
17
|
+
### Phase 2: Login Path
|
|
18
|
+
1. Attempt known credentials in defined order.
|
|
19
|
+
2. Validate success via authenticated-only action, not UI guess.
|
|
20
|
+
3. Record session artifacts and expiry behavior.
|
|
21
|
+
|
|
22
|
+
### Phase 3: Registration Path
|
|
23
|
+
1. Create dedicated test accounts when permitted.
|
|
24
|
+
2. Capture verification dependencies.
|
|
25
|
+
3. Validate role assignment and default permissions.
|
|
26
|
+
|
|
27
|
+
### Phase 4: Session Lifecycle
|
|
28
|
+
1. Test logout invalidation.
|
|
29
|
+
2. Test token/cookie rotation after privilege change.
|
|
30
|
+
3. Test concurrent session behavior.
|
|
31
|
+
|
|
32
|
+
### Phase 5: Access Validation
|
|
33
|
+
1. Confirm protected route gating.
|
|
34
|
+
2. Confirm role-sensitive feature differences.
|
|
35
|
+
3. Confirm cross-account isolation.
|
|
36
|
+
|
|
37
|
+
## Anti-Patterns
|
|
38
|
+
- Assuming logged-in state from UI text only.
|
|
39
|
+
- Reusing stale tokens without validation.
|
|
40
|
+
- Mixing account identities in one evidence stream.
|
|
41
|
+
|
|
42
|
+
## Output Contract
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"working_auth_paths": [],
|
|
46
|
+
"accounts": [],
|
|
47
|
+
"session_lifecycle": [],
|
|
48
|
+
"role_validation": [],
|
|
49
|
+
"blockers": []
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Constraints
|
|
54
|
+
- No brute force.
|
|
55
|
+
- Respect account-creation and cleanup rules.
|
|
56
|
+
- Keep PII and credentials minimized in logs.
|
|
57
|
+
|
|
58
|
+
## Quality Checklist
|
|
59
|
+
- [ ] At least one stable auth path established.
|
|
60
|
+
- [ ] Session behavior tested, not inferred.
|
|
61
|
+
- [ ] Role boundaries verified with action-level checks.
|
|
62
|
+
|
|
63
|
+
## Conditional Decision Matrix
|
|
64
|
+
| Condition | Action | Evidence Requirement |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| Credentials succeed in UI but fail in API | validate token audience/session binding | endpoint-level auth proof |
|
|
67
|
+
| Registration requires email verification | capture verification state transitions | account timeline with states |
|
|
68
|
+
| MFA optional for some flows | compare protected action access with/without MFA | role/action differential |
|
|
69
|
+
| Logout appears successful but token works | test token reuse after logout/reset | post-logout replay proof |
|
|
70
|
+
| Role appears in UI only | validate backend authorization with privileged actions | server-side denial/allow traces |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Autonomous RAG
|
|
2
|
+
## Pipeline
|
|
3
|
+
1. **Ingest**: upload documents (PDF, text, web pages) → chunk → embed → store in vector DB
|
|
4
|
+
2. **Query**: user asks question → embed query → search vector store
|
|
5
|
+
3. **Evaluate**: are retrieved results sufficient to answer?
|
|
6
|
+
4. **Fallback**: if insufficient, automatically search the web (DuckDuckGo, Tavily)
|
|
7
|
+
5. **Generate**: answer from best available sources, citing whether from KB or web
|
|
8
|
+
|
|
9
|
+
## Ingestion
|
|
10
|
+
```typescript
|
|
11
|
+
// PDF → chunks → embeddings → pgvector
|
|
12
|
+
const chunks = splitDocument(pdfContent, { chunkSize: 500, overlap: 50 });
|
|
13
|
+
const embeddings = await embed(chunks);
|
|
14
|
+
await vectorStore.upsert(chunks.map((c, i) => ({ content: c, embedding: embeddings[i] })));
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
- Always try knowledge base first (user uploaded those docs for a reason)
|
|
19
|
+
- Web fallback is transparent: "I didn't find this in your documents, but web search shows..."
|
|
20
|
+
- Cite sources: [KB: document.pdf, page 3] or [Web: url]
|
|
21
|
+
- Re-ingest documents when they change.
|