omgkit 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 +252 -0
- package/bin/omgkit.js +122 -0
- package/lib/.gitkeep +0 -0
- package/lib/cli.js +513 -0
- package/lib/index.js +35 -0
- package/package.json +52 -0
- package/plugin/.claude-plugin/.gitkeep +0 -0
- package/plugin/.claude-plugin/plugin.json +11 -0
- package/plugin/agents/.gitkeep +0 -0
- package/plugin/agents/api-designer.md +66 -0
- package/plugin/agents/architect.md +81 -0
- package/plugin/agents/brainstormer.md +60 -0
- package/plugin/agents/cicd-manager.md +50 -0
- package/plugin/agents/code-reviewer.md +45 -0
- package/plugin/agents/copywriter.md +48 -0
- package/plugin/agents/database-admin.md +49 -0
- package/plugin/agents/debugger.md +55 -0
- package/plugin/agents/docs-manager.md +52 -0
- package/plugin/agents/fullstack-developer.md +67 -0
- package/plugin/agents/git-manager.md +48 -0
- package/plugin/agents/journal-writer.md +51 -0
- package/plugin/agents/oracle.md +91 -0
- package/plugin/agents/pipeline-architect.md +52 -0
- package/plugin/agents/planner.md +60 -0
- package/plugin/agents/project-manager.md +43 -0
- package/plugin/agents/researcher.md +37 -0
- package/plugin/agents/scout.md +37 -0
- package/plugin/agents/security-auditor.md +53 -0
- package/plugin/agents/sprint-master.md +84 -0
- package/plugin/agents/tester.md +50 -0
- package/plugin/agents/ui-ux-designer.md +61 -0
- package/plugin/agents/vulnerability-scanner.md +53 -0
- package/plugin/commands/context/.gitkeep +0 -0
- package/plugin/commands/context/checkpoint.md +20 -0
- package/plugin/commands/context/index.md +17 -0
- package/plugin/commands/context/load.md +16 -0
- package/plugin/commands/context/mode.md +20 -0
- package/plugin/commands/context/spawn-collect.md +14 -0
- package/plugin/commands/context/spawn.md +20 -0
- package/plugin/commands/design/.gitkeep +0 -0
- package/plugin/commands/design/cro.md +27 -0
- package/plugin/commands/design/enhance.md +16 -0
- package/plugin/commands/design/fast.md +17 -0
- package/plugin/commands/design/good.md +23 -0
- package/plugin/commands/design/screenshot.md +21 -0
- package/plugin/commands/dev/.gitkeep +0 -0
- package/plugin/commands/dev/feature.md +25 -0
- package/plugin/commands/dev/fix-ci.md +23 -0
- package/plugin/commands/dev/fix-fast.md +19 -0
- package/plugin/commands/dev/fix-hard.md +25 -0
- package/plugin/commands/dev/fix-logs.md +21 -0
- package/plugin/commands/dev/fix-test.md +23 -0
- package/plugin/commands/dev/fix.md +22 -0
- package/plugin/commands/dev/review.md +31 -0
- package/plugin/commands/dev/tdd.md +29 -0
- package/plugin/commands/dev/test.md +25 -0
- package/plugin/commands/git/.gitkeep +0 -0
- package/plugin/commands/git/cm.md +13 -0
- package/plugin/commands/git/commit.md +31 -0
- package/plugin/commands/git/cp.md +14 -0
- package/plugin/commands/git/deploy.md +21 -0
- package/plugin/commands/git/pr.md +20 -0
- package/plugin/commands/git/ship.md +29 -0
- package/plugin/commands/omega/.gitkeep +0 -0
- package/plugin/commands/omega/1000x.md +41 -0
- package/plugin/commands/omega/100x.md +39 -0
- package/plugin/commands/omega/10x.md +47 -0
- package/plugin/commands/omega/dimensions.md +26 -0
- package/plugin/commands/omega/principles.md +43 -0
- package/plugin/commands/planning/.gitkeep +0 -0
- package/plugin/commands/planning/ask.md +21 -0
- package/plugin/commands/planning/brainstorm.md +33 -0
- package/plugin/commands/planning/doc.md +28 -0
- package/plugin/commands/planning/execute-plan.md +28 -0
- package/plugin/commands/planning/plan-detailed.md +32 -0
- package/plugin/commands/planning/plan-parallel.md +35 -0
- package/plugin/commands/planning/plan.md +39 -0
- package/plugin/commands/planning/research.md +39 -0
- package/plugin/commands/quality/.gitkeep +0 -0
- package/plugin/commands/quality/api-gen.md +25 -0
- package/plugin/commands/quality/lint.md +15 -0
- package/plugin/commands/quality/optimize.md +23 -0
- package/plugin/commands/quality/refactor.md +22 -0
- package/plugin/commands/quality/security-scan.md +28 -0
- package/plugin/commands/sprint/.gitkeep +0 -0
- package/plugin/commands/sprint/backlog-add.md +21 -0
- package/plugin/commands/sprint/backlog-prioritize.md +18 -0
- package/plugin/commands/sprint/backlog-show.md +25 -0
- package/plugin/commands/sprint/init.md +27 -0
- package/plugin/commands/sprint/sprint-current.md +22 -0
- package/plugin/commands/sprint/sprint-end.md +33 -0
- package/plugin/commands/sprint/sprint-new.md +31 -0
- package/plugin/commands/sprint/sprint-start.md +17 -0
- package/plugin/commands/sprint/team-ask.md +21 -0
- package/plugin/commands/sprint/team-run.md +29 -0
- package/plugin/commands/sprint/team-status.md +23 -0
- package/plugin/commands/sprint/vision-set.md +21 -0
- package/plugin/commands/sprint/vision-show.md +15 -0
- package/plugin/mcp/.gitkeep +0 -0
- package/plugin/mcp/.mcp.json +20 -0
- package/plugin/mcp/README.md +68 -0
- package/plugin/modes/.gitkeep +0 -0
- package/plugin/modes/autonomous.md +48 -0
- package/plugin/modes/brainstorm.md +33 -0
- package/plugin/modes/deep-research.md +41 -0
- package/plugin/modes/default.md +25 -0
- package/plugin/modes/implementation.md +35 -0
- package/plugin/modes/omega.md +38 -0
- package/plugin/modes/orchestration.md +41 -0
- package/plugin/modes/review.md +44 -0
- package/plugin/modes/token-efficient.md +37 -0
- package/plugin/skills/databases/.gitkeep +0 -0
- package/plugin/skills/databases/mongodb/SKILL.md +43 -0
- package/plugin/skills/databases/postgresql/SKILL.md +43 -0
- package/plugin/skills/databases/prisma/SKILL.md +55 -0
- package/plugin/skills/databases/redis/SKILL.md +41 -0
- package/plugin/skills/devops/.gitkeep +0 -0
- package/plugin/skills/devops/aws/SKILL.md +51 -0
- package/plugin/skills/devops/docker/SKILL.md +54 -0
- package/plugin/skills/devops/github-actions/SKILL.md +63 -0
- package/plugin/skills/devops/kubernetes/SKILL.md +64 -0
- package/plugin/skills/frameworks/.gitkeep +0 -0
- package/plugin/skills/frameworks/django/SKILL.md +47 -0
- package/plugin/skills/frameworks/express/SKILL.md +55 -0
- package/plugin/skills/frameworks/fastapi/SKILL.md +58 -0
- package/plugin/skills/frameworks/laravel/SKILL.md +65 -0
- package/plugin/skills/frameworks/nestjs/SKILL.md +67 -0
- package/plugin/skills/frameworks/nextjs/SKILL.md +77 -0
- package/plugin/skills/frameworks/rails/SKILL.md +56 -0
- package/plugin/skills/frameworks/react/SKILL.md +61 -0
- package/plugin/skills/frameworks/spring/SKILL.md +70 -0
- package/plugin/skills/frameworks/vue/SKILL.md +62 -0
- package/plugin/skills/frontend/.gitkeep +0 -0
- package/plugin/skills/frontend/accessibility/SKILL.md +52 -0
- package/plugin/skills/frontend/frontend-design/SKILL.md +47 -0
- package/plugin/skills/frontend/responsive/SKILL.md +46 -0
- package/plugin/skills/frontend/shadcn-ui/SKILL.md +58 -0
- package/plugin/skills/frontend/tailwindcss/SKILL.md +52 -0
- package/plugin/skills/frontend/threejs/SKILL.md +59 -0
- package/plugin/skills/languages/.gitkeep +0 -0
- package/plugin/skills/languages/javascript/SKILL.md +62 -0
- package/plugin/skills/languages/python/SKILL.md +63 -0
- package/plugin/skills/languages/typescript/SKILL.md +66 -0
- package/plugin/skills/methodology/.gitkeep +0 -0
- package/plugin/skills/methodology/brainstorming/SKILL.md +34 -0
- package/plugin/skills/methodology/defense-in-depth/SKILL.md +51 -0
- package/plugin/skills/methodology/dispatching-parallel-agents/SKILL.md +43 -0
- package/plugin/skills/methodology/executing-plans/SKILL.md +34 -0
- package/plugin/skills/methodology/finishing-development-branch/SKILL.md +41 -0
- package/plugin/skills/methodology/receiving-code-review/SKILL.md +41 -0
- package/plugin/skills/methodology/requesting-code-review/SKILL.md +38 -0
- package/plugin/skills/methodology/root-cause-tracing/SKILL.md +53 -0
- package/plugin/skills/methodology/systematic-debugging/SKILL.md +50 -0
- package/plugin/skills/methodology/test-driven-development/SKILL.md +39 -0
- package/plugin/skills/methodology/testing-anti-patterns/SKILL.md +50 -0
- package/plugin/skills/methodology/token-optimization/SKILL.md +51 -0
- package/plugin/skills/methodology/verification-before-completion/SKILL.md +32 -0
- package/plugin/skills/methodology/writing-plans/SKILL.md +34 -0
- package/plugin/skills/omega/.gitkeep +0 -0
- package/plugin/skills/omega/omega-architecture/SKILL.md +59 -0
- package/plugin/skills/omega/omega-coding/SKILL.md +61 -0
- package/plugin/skills/omega/omega-sprint/SKILL.md +64 -0
- package/plugin/skills/omega/omega-testing/SKILL.md +71 -0
- package/plugin/skills/omega/omega-thinking/SKILL.md +54 -0
- package/plugin/skills/security/.gitkeep +0 -0
- package/plugin/skills/security/better-auth/SKILL.md +53 -0
- package/plugin/skills/security/oauth/SKILL.md +50 -0
- package/plugin/skills/security/owasp/SKILL.md +57 -0
- package/plugin/skills/testing/.gitkeep +0 -0
- package/plugin/skills/testing/playwright/SKILL.md +60 -0
- package/plugin/skills/testing/pytest/SKILL.md +58 -0
- package/plugin/skills/testing/vitest/SKILL.md +64 -0
- package/templates/.gitkeep +0 -0
- package/templates/OMEGA.md +80 -0
- package/templates/backlog.yaml +25 -0
- package/templates/config.yaml +44 -0
- package/templates/settings.json +20 -0
- package/templates/vision.yaml +30 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omega-sprint
|
|
3
|
+
description: Omega sprint management. Use for AI team sprint execution.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Omega Sprint Skill
|
|
7
|
+
|
|
8
|
+
## Sprint Lifecycle
|
|
9
|
+
```
|
|
10
|
+
Vision → Backlog → Sprint → Execute → Retrospect
|
|
11
|
+
↑ │
|
|
12
|
+
└──────────────────────────────────────┘
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Vision Setting
|
|
16
|
+
```yaml
|
|
17
|
+
vision:
|
|
18
|
+
product: "What we're building"
|
|
19
|
+
users: "Who it's for"
|
|
20
|
+
goals: ["Goal 1", "Goal 2"]
|
|
21
|
+
success: "How we measure"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Sprint Planning
|
|
25
|
+
1. Review backlog
|
|
26
|
+
2. Select tasks for sprint
|
|
27
|
+
3. Estimate (optional)
|
|
28
|
+
4. Assign to agents
|
|
29
|
+
|
|
30
|
+
## AI Team Execution
|
|
31
|
+
|
|
32
|
+
### Autonomy Levels
|
|
33
|
+
- **Full-Auto**: No human intervention
|
|
34
|
+
- **Semi-Auto**: Review at checkpoints
|
|
35
|
+
- **Manual**: Approve each step
|
|
36
|
+
|
|
37
|
+
### Agent Routing
|
|
38
|
+
| Task Type | Agent |
|
|
39
|
+
|-----------|-------|
|
|
40
|
+
| feature | fullstack-developer |
|
|
41
|
+
| bugfix | debugger |
|
|
42
|
+
| research | oracle |
|
|
43
|
+
| docs | docs-manager |
|
|
44
|
+
| test | tester |
|
|
45
|
+
|
|
46
|
+
## Retrospective
|
|
47
|
+
```markdown
|
|
48
|
+
## What Went Well
|
|
49
|
+
- [Success]
|
|
50
|
+
|
|
51
|
+
## What Could Improve
|
|
52
|
+
- [Learning]
|
|
53
|
+
|
|
54
|
+
## Action Items
|
|
55
|
+
- [Improvement for next sprint]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Commands
|
|
59
|
+
```bash
|
|
60
|
+
/vision:set
|
|
61
|
+
/sprint:new --propose
|
|
62
|
+
/team:run --mode semi-auto
|
|
63
|
+
/sprint:end
|
|
64
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omega-testing
|
|
3
|
+
description: Comprehensive Omega testing. Use for thorough test coverage.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Omega Testing Skill
|
|
7
|
+
|
|
8
|
+
## Testing Pyramid
|
|
9
|
+
```
|
|
10
|
+
/\
|
|
11
|
+
/E2E\
|
|
12
|
+
/─────\
|
|
13
|
+
/Integ. \
|
|
14
|
+
/─────────\
|
|
15
|
+
/ Unit \
|
|
16
|
+
/─────────────\
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Coverage Targets
|
|
20
|
+
- Unit: 80%+
|
|
21
|
+
- Integration: 60%+
|
|
22
|
+
- E2E: Critical paths 100%
|
|
23
|
+
|
|
24
|
+
## Test Categories
|
|
25
|
+
|
|
26
|
+
### 1. Happy Path
|
|
27
|
+
```typescript
|
|
28
|
+
it('creates user successfully', async () => {
|
|
29
|
+
const user = await createUser({ email: 'test@example.com' });
|
|
30
|
+
expect(user.email).toBe('test@example.com');
|
|
31
|
+
});
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 2. Edge Cases
|
|
35
|
+
```typescript
|
|
36
|
+
it('handles empty input', () => {
|
|
37
|
+
expect(() => createUser({ email: '' })).toThrow();
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. Error Cases
|
|
42
|
+
```typescript
|
|
43
|
+
it('handles database failure', async () => {
|
|
44
|
+
db.fail();
|
|
45
|
+
await expect(createUser({})).rejects.toThrow(DatabaseError);
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 4. Performance
|
|
50
|
+
```typescript
|
|
51
|
+
it('responds within 100ms', async () => {
|
|
52
|
+
const start = Date.now();
|
|
53
|
+
await fetchUsers();
|
|
54
|
+
expect(Date.now() - start).toBeLessThan(100);
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 5. Security
|
|
59
|
+
```typescript
|
|
60
|
+
it('rejects SQL injection', () => {
|
|
61
|
+
const input = "'; DROP TABLE users; --";
|
|
62
|
+
expect(() => query(input)).not.toThrow();
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Omega Quality
|
|
67
|
+
Test for ALL dimensions:
|
|
68
|
+
- Accuracy
|
|
69
|
+
- Performance
|
|
70
|
+
- Security
|
|
71
|
+
- Accessibility
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omega-thinking
|
|
3
|
+
description: 7 modes of Omega thinking. Use for deep analysis, problem solving, finding 10x improvements.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Omega Thinking Skill
|
|
7
|
+
|
|
8
|
+
## The 7 Modes
|
|
9
|
+
|
|
10
|
+
### 🔭 TELESCOPIC
|
|
11
|
+
Zoom out to see the big picture.
|
|
12
|
+
- Task → Feature → Product → Market → Industry → World
|
|
13
|
+
- **Ask**: "What's the ultimate impact?"
|
|
14
|
+
|
|
15
|
+
### 🔬 MICROSCOPIC
|
|
16
|
+
First principles analysis.
|
|
17
|
+
- Why? → Why? → Why? → Why? → Why?
|
|
18
|
+
- **Ask**: "What's fundamentally true?"
|
|
19
|
+
|
|
20
|
+
### ↔️ LATERAL
|
|
21
|
+
Different angles and approaches.
|
|
22
|
+
- How would [X industry] solve this?
|
|
23
|
+
- What's the opposite approach?
|
|
24
|
+
- **Ask**: "What are we not seeing?"
|
|
25
|
+
|
|
26
|
+
### 🔄 INVERSION
|
|
27
|
+
Learn through failure.
|
|
28
|
+
- How to guarantee failure?
|
|
29
|
+
- Avoid those things.
|
|
30
|
+
- **Ask**: "What would make this fail?"
|
|
31
|
+
|
|
32
|
+
### ⏳ TEMPORAL
|
|
33
|
+
Time dimension analysis.
|
|
34
|
+
- Historical patterns?
|
|
35
|
+
- Relevant in 10 years?
|
|
36
|
+
- **Ask**: "How does time affect this?"
|
|
37
|
+
|
|
38
|
+
### 🕸️ SYSTEMIC
|
|
39
|
+
Interconnections and emergence.
|
|
40
|
+
- Components and connections?
|
|
41
|
+
- Feedback loops?
|
|
42
|
+
- **Ask**: "What system dynamics are at play?"
|
|
43
|
+
|
|
44
|
+
### ⚛️ QUANTUM
|
|
45
|
+
Multiple possibilities.
|
|
46
|
+
- All possible solutions?
|
|
47
|
+
- How to test quickly?
|
|
48
|
+
- **Ask**: "What are all the possibilities?"
|
|
49
|
+
|
|
50
|
+
## Application
|
|
51
|
+
For any problem:
|
|
52
|
+
1. Apply all 7 modes
|
|
53
|
+
2. Synthesize insights
|
|
54
|
+
3. Find the 10x opportunity
|
|
File without changes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: better-auth
|
|
3
|
+
description: Better Auth library. Use for authentication in TypeScript projects.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Better Auth Skill
|
|
7
|
+
|
|
8
|
+
## Setup
|
|
9
|
+
```typescript
|
|
10
|
+
import { betterAuth } from 'better-auth';
|
|
11
|
+
|
|
12
|
+
export const auth = betterAuth({
|
|
13
|
+
database: {
|
|
14
|
+
provider: 'postgresql',
|
|
15
|
+
url: process.env.DATABASE_URL,
|
|
16
|
+
},
|
|
17
|
+
emailAndPassword: {
|
|
18
|
+
enabled: true,
|
|
19
|
+
},
|
|
20
|
+
socialProviders: {
|
|
21
|
+
google: {
|
|
22
|
+
clientId: process.env.GOOGLE_CLIENT_ID,
|
|
23
|
+
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Client Usage
|
|
30
|
+
```typescript
|
|
31
|
+
import { createAuthClient } from 'better-auth/client';
|
|
32
|
+
|
|
33
|
+
const authClient = createAuthClient();
|
|
34
|
+
|
|
35
|
+
// Sign up
|
|
36
|
+
await authClient.signUp.email({
|
|
37
|
+
email: 'user@example.com',
|
|
38
|
+
password: 'password',
|
|
39
|
+
name: 'User',
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Sign in
|
|
43
|
+
await authClient.signIn.email({
|
|
44
|
+
email: 'user@example.com',
|
|
45
|
+
password: 'password',
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
- Enable rate limiting
|
|
51
|
+
- Use secure cookies
|
|
52
|
+
- Implement email verification
|
|
53
|
+
- Add MFA option
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oauth
|
|
3
|
+
description: OAuth 2.0 / OIDC. Use for third-party authentication, social login.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OAuth Skill
|
|
7
|
+
|
|
8
|
+
## Authorization Code Flow
|
|
9
|
+
```
|
|
10
|
+
1. Redirect to provider
|
|
11
|
+
/authorize?client_id=X&redirect_uri=Y&scope=Z&response_type=code
|
|
12
|
+
|
|
13
|
+
2. User authorizes
|
|
14
|
+
|
|
15
|
+
3. Callback with code
|
|
16
|
+
/callback?code=ABC
|
|
17
|
+
|
|
18
|
+
4. Exchange code for token
|
|
19
|
+
POST /token
|
|
20
|
+
{ code, client_id, client_secret, redirect_uri }
|
|
21
|
+
|
|
22
|
+
5. Use access token
|
|
23
|
+
Authorization: Bearer <token>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Implementation
|
|
27
|
+
```typescript
|
|
28
|
+
// Redirect to OAuth provider
|
|
29
|
+
app.get('/auth/google', (req, res) => {
|
|
30
|
+
const url = new URL('https://accounts.google.com/o/oauth2/v2/auth');
|
|
31
|
+
url.searchParams.set('client_id', CLIENT_ID);
|
|
32
|
+
url.searchParams.set('redirect_uri', REDIRECT_URI);
|
|
33
|
+
url.searchParams.set('response_type', 'code');
|
|
34
|
+
url.searchParams.set('scope', 'openid email profile');
|
|
35
|
+
res.redirect(url.toString());
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Handle callback
|
|
39
|
+
app.get('/auth/callback', async (req, res) => {
|
|
40
|
+
const { code } = req.query;
|
|
41
|
+
const tokens = await exchangeCodeForTokens(code);
|
|
42
|
+
// Create session
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Best Practices
|
|
47
|
+
- Use PKCE for public clients
|
|
48
|
+
- Validate state parameter
|
|
49
|
+
- Use short-lived tokens
|
|
50
|
+
- Store tokens securely
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owasp
|
|
3
|
+
description: OWASP security. Use for security best practices, vulnerability prevention.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OWASP Skill
|
|
7
|
+
|
|
8
|
+
## Top 10 Prevention
|
|
9
|
+
|
|
10
|
+
### 1. Injection
|
|
11
|
+
```typescript
|
|
12
|
+
// Bad
|
|
13
|
+
db.query(`SELECT * FROM users WHERE id = ${id}`);
|
|
14
|
+
|
|
15
|
+
// Good
|
|
16
|
+
db.query('SELECT * FROM users WHERE id = $1', [id]);
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 2. Broken Authentication
|
|
20
|
+
```typescript
|
|
21
|
+
// Use secure session management
|
|
22
|
+
// Implement MFA
|
|
23
|
+
// Rate limit login attempts
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 3. XSS Prevention
|
|
27
|
+
```typescript
|
|
28
|
+
// Bad
|
|
29
|
+
element.innerHTML = userInput;
|
|
30
|
+
|
|
31
|
+
// Good
|
|
32
|
+
element.textContent = userInput;
|
|
33
|
+
// Or use DOMPurify
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 4. CSRF Prevention
|
|
37
|
+
```typescript
|
|
38
|
+
// Use CSRF tokens
|
|
39
|
+
// SameSite cookies
|
|
40
|
+
// Verify Origin header
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 5. Security Headers
|
|
44
|
+
```typescript
|
|
45
|
+
app.use(helmet({
|
|
46
|
+
contentSecurityPolicy: true,
|
|
47
|
+
hsts: true,
|
|
48
|
+
noSniff: true,
|
|
49
|
+
}));
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Checklist
|
|
53
|
+
- [ ] Input validation
|
|
54
|
+
- [ ] Output encoding
|
|
55
|
+
- [ ] Parameterized queries
|
|
56
|
+
- [ ] Secure headers
|
|
57
|
+
- [ ] HTTPS only
|
|
File without changes
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: playwright
|
|
3
|
+
description: Playwright E2E testing. Use for browser automation, E2E tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Playwright Skill
|
|
7
|
+
|
|
8
|
+
## Basic Test
|
|
9
|
+
```typescript
|
|
10
|
+
import { test, expect } from '@playwright/test';
|
|
11
|
+
|
|
12
|
+
test('homepage has title', async ({ page }) => {
|
|
13
|
+
await page.goto('/');
|
|
14
|
+
await expect(page).toHaveTitle(/My App/);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('login flow', async ({ page }) => {
|
|
18
|
+
await page.goto('/login');
|
|
19
|
+
await page.fill('[name="email"]', 'test@example.com');
|
|
20
|
+
await page.fill('[name="password"]', 'password');
|
|
21
|
+
await page.click('button[type="submit"]');
|
|
22
|
+
await expect(page).toHaveURL('/dashboard');
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Page Object Model
|
|
27
|
+
```typescript
|
|
28
|
+
class LoginPage {
|
|
29
|
+
constructor(private page: Page) {}
|
|
30
|
+
|
|
31
|
+
async login(email: string, password: string) {
|
|
32
|
+
await this.page.fill('[name="email"]', email);
|
|
33
|
+
await this.page.fill('[name="password"]', password);
|
|
34
|
+
await this.page.click('button[type="submit"]');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Config
|
|
40
|
+
```typescript
|
|
41
|
+
// playwright.config.ts
|
|
42
|
+
export default defineConfig({
|
|
43
|
+
testDir: './tests',
|
|
44
|
+
use: {
|
|
45
|
+
baseURL: 'http://localhost:3000',
|
|
46
|
+
screenshot: 'only-on-failure',
|
|
47
|
+
},
|
|
48
|
+
projects: [
|
|
49
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
50
|
+
{ name: 'mobile', use: { ...devices['iPhone 12'] } },
|
|
51
|
+
],
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Run
|
|
56
|
+
```bash
|
|
57
|
+
npx playwright test
|
|
58
|
+
npx playwright test --ui
|
|
59
|
+
npx playwright codegen
|
|
60
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pytest
|
|
3
|
+
description: Python testing with pytest. Use for unit tests, fixtures, mocking.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pytest Skill
|
|
7
|
+
|
|
8
|
+
## Basic Tests
|
|
9
|
+
```python
|
|
10
|
+
def test_add():
|
|
11
|
+
assert add(1, 2) == 3
|
|
12
|
+
|
|
13
|
+
def test_raises():
|
|
14
|
+
with pytest.raises(ValueError):
|
|
15
|
+
validate("")
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Fixtures
|
|
19
|
+
```python
|
|
20
|
+
@pytest.fixture
|
|
21
|
+
def user():
|
|
22
|
+
return User(email="test@example.com")
|
|
23
|
+
|
|
24
|
+
@pytest.fixture
|
|
25
|
+
async def db():
|
|
26
|
+
conn = await create_connection()
|
|
27
|
+
yield conn
|
|
28
|
+
await conn.close()
|
|
29
|
+
|
|
30
|
+
def test_user_email(user):
|
|
31
|
+
assert user.email == "test@example.com"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Parametrize
|
|
35
|
+
```python
|
|
36
|
+
@pytest.mark.parametrize("input,expected", [
|
|
37
|
+
(1, 2),
|
|
38
|
+
(2, 4),
|
|
39
|
+
(3, 6),
|
|
40
|
+
])
|
|
41
|
+
def test_double(input, expected):
|
|
42
|
+
assert double(input) == expected
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Mocking
|
|
46
|
+
```python
|
|
47
|
+
def test_api_call(mocker):
|
|
48
|
+
mocker.patch('module.fetch', return_value={'data': 'test'})
|
|
49
|
+
result = get_data()
|
|
50
|
+
assert result == {'data': 'test'}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Run
|
|
54
|
+
```bash
|
|
55
|
+
pytest -v
|
|
56
|
+
pytest --cov=src
|
|
57
|
+
pytest -k "test_user"
|
|
58
|
+
```
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vitest
|
|
3
|
+
description: Vitest testing. Use for JavaScript/TypeScript unit tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vitest Skill
|
|
7
|
+
|
|
8
|
+
## Basic Tests
|
|
9
|
+
```typescript
|
|
10
|
+
import { describe, it, expect } from 'vitest';
|
|
11
|
+
|
|
12
|
+
describe('add', () => {
|
|
13
|
+
it('adds two numbers', () => {
|
|
14
|
+
expect(add(1, 2)).toBe(3);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('handles negative numbers', () => {
|
|
18
|
+
expect(add(-1, 1)).toBe(0);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Async Tests
|
|
24
|
+
```typescript
|
|
25
|
+
it('fetches user', async () => {
|
|
26
|
+
const user = await fetchUser('123');
|
|
27
|
+
expect(user.email).toBe('test@example.com');
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Mocking
|
|
32
|
+
```typescript
|
|
33
|
+
import { vi } from 'vitest';
|
|
34
|
+
|
|
35
|
+
vi.mock('./api', () => ({
|
|
36
|
+
fetchData: vi.fn().mockResolvedValue({ data: 'test' }),
|
|
37
|
+
}));
|
|
38
|
+
|
|
39
|
+
it('calls API', async () => {
|
|
40
|
+
const result = await getData();
|
|
41
|
+
expect(fetchData).toHaveBeenCalled();
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Setup
|
|
46
|
+
```typescript
|
|
47
|
+
// vitest.config.ts
|
|
48
|
+
export default defineConfig({
|
|
49
|
+
test: {
|
|
50
|
+
globals: true,
|
|
51
|
+
environment: 'jsdom',
|
|
52
|
+
coverage: {
|
|
53
|
+
provider: 'v8',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Run
|
|
60
|
+
```bash
|
|
61
|
+
vitest
|
|
62
|
+
vitest --coverage
|
|
63
|
+
vitest --ui
|
|
64
|
+
```
|
|
File without changes
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# 🔮 OMEGA.md - Project Context
|
|
2
|
+
|
|
3
|
+
> This file provides context for OMGKIT AI Team.
|
|
4
|
+
> Customize for your project.
|
|
5
|
+
|
|
6
|
+
## Project Overview
|
|
7
|
+
|
|
8
|
+
**Name**: [Your Project Name]
|
|
9
|
+
**Description**: [Brief description]
|
|
10
|
+
**Tech Stack**: [e.g., Next.js, PostgreSQL, TypeScript]
|
|
11
|
+
|
|
12
|
+
## Team Structure
|
|
13
|
+
|
|
14
|
+
OMGKIT provides 23 specialized agents organized into teams:
|
|
15
|
+
|
|
16
|
+
### Core Development
|
|
17
|
+
- **planner** - Task decomposition and planning
|
|
18
|
+
- **fullstack-developer** - Full implementation
|
|
19
|
+
- **debugger** - Error analysis and fixing
|
|
20
|
+
- **tester** - Test generation
|
|
21
|
+
- **code-reviewer** - Code review with security focus
|
|
22
|
+
- **scout** - Codebase exploration
|
|
23
|
+
|
|
24
|
+
### Operations
|
|
25
|
+
- **git-manager** - Git operations and PRs
|
|
26
|
+
- **docs-manager** - Documentation
|
|
27
|
+
- **project-manager** - Progress tracking
|
|
28
|
+
- **database-admin** - Schema and migrations
|
|
29
|
+
- **ui-ux-designer** - UI components
|
|
30
|
+
|
|
31
|
+
### Omega Team ⭐
|
|
32
|
+
- **oracle** - Deep analysis, 7 thinking modes
|
|
33
|
+
- **architect** - System design, leverage multiplication
|
|
34
|
+
- **sprint-master** - Sprint and team management
|
|
35
|
+
|
|
36
|
+
## Conventions
|
|
37
|
+
|
|
38
|
+
### Code Style
|
|
39
|
+
- TypeScript strict mode
|
|
40
|
+
- ESLint + Prettier
|
|
41
|
+
- Conventional commits
|
|
42
|
+
|
|
43
|
+
### Testing
|
|
44
|
+
- Minimum 80% coverage
|
|
45
|
+
- TDD for critical paths
|
|
46
|
+
- E2E for user flows
|
|
47
|
+
|
|
48
|
+
### Documentation
|
|
49
|
+
- Update docs with code
|
|
50
|
+
- API documentation required
|
|
51
|
+
- Architecture decisions in ADRs
|
|
52
|
+
|
|
53
|
+
## Current Sprint
|
|
54
|
+
|
|
55
|
+
See `.omgkit/sprints/current.yaml`
|
|
56
|
+
|
|
57
|
+
## Commands Quick Reference
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Core
|
|
61
|
+
/feature [desc] # Build feature
|
|
62
|
+
/fix [issue] # Fix bug
|
|
63
|
+
/plan [task] # Create plan
|
|
64
|
+
/test [scope] # Generate tests
|
|
65
|
+
|
|
66
|
+
# Sprint
|
|
67
|
+
/vision:set # Set vision
|
|
68
|
+
/sprint:new # New sprint
|
|
69
|
+
/team:run # Run AI team
|
|
70
|
+
/backlog:add # Add task
|
|
71
|
+
|
|
72
|
+
# Omega
|
|
73
|
+
/10x [topic] # 10x path
|
|
74
|
+
/100x [topic] # 100x paradigm
|
|
75
|
+
/1000x [topic] # 1000x moonshot
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
*Think Omega. Build Omega. Be Omega.* 🔮
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Product Backlog
|
|
2
|
+
# Managed by /backlog:* commands
|
|
3
|
+
|
|
4
|
+
backlog: []
|
|
5
|
+
|
|
6
|
+
# Task template:
|
|
7
|
+
# - id: "TASK-001"
|
|
8
|
+
# title: ""
|
|
9
|
+
# description: ""
|
|
10
|
+
# type: feature | bugfix | docs | test | refactor | infra
|
|
11
|
+
# priority: 1-5 (1 = highest)
|
|
12
|
+
# status: pending | in_progress | review | done | blocked
|
|
13
|
+
# assigned_to: null | agent_name
|
|
14
|
+
# sprint_id: null | sprint_id
|
|
15
|
+
# estimate: "2h" | "1d" | "3d"
|
|
16
|
+
# tags: []
|
|
17
|
+
# dependencies: []
|
|
18
|
+
# created_at: ""
|
|
19
|
+
# completed_at: null
|
|
20
|
+
|
|
21
|
+
stats:
|
|
22
|
+
total: 0
|
|
23
|
+
pending: 0
|
|
24
|
+
in_progress: 0
|
|
25
|
+
done: 0
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# OMGKIT Project Configuration
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
|
|
4
|
+
# Project info
|
|
5
|
+
project:
|
|
6
|
+
name: ""
|
|
7
|
+
description: ""
|
|
8
|
+
|
|
9
|
+
# AI settings
|
|
10
|
+
ai:
|
|
11
|
+
model: inherit
|
|
12
|
+
temperature: 0.7
|
|
13
|
+
|
|
14
|
+
# Agent settings
|
|
15
|
+
agents:
|
|
16
|
+
mode: auto # auto | sequential | parallel
|
|
17
|
+
timeout: 300
|
|
18
|
+
|
|
19
|
+
# Sprint settings
|
|
20
|
+
sprint:
|
|
21
|
+
default_duration: 14
|
|
22
|
+
max_tasks: 20
|
|
23
|
+
auto_propose: true
|
|
24
|
+
|
|
25
|
+
# Team settings
|
|
26
|
+
team:
|
|
27
|
+
autonomy: semi-auto # full-auto | semi-auto | manual
|
|
28
|
+
review_gates: true
|
|
29
|
+
auto_commit: false
|
|
30
|
+
|
|
31
|
+
# Output settings
|
|
32
|
+
output:
|
|
33
|
+
plans_dir: .omgkit/plans
|
|
34
|
+
docs_dir: .omgkit/docs
|
|
35
|
+
logs_dir: .omgkit/logs
|
|
36
|
+
verbose: false
|
|
37
|
+
|
|
38
|
+
# MCP settings
|
|
39
|
+
mcp:
|
|
40
|
+
context7: true
|
|
41
|
+
sequential: true
|
|
42
|
+
playwright: false
|
|
43
|
+
memory: true
|
|
44
|
+
filesystem: true
|