@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,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: systematic-debugging
|
|
3
|
+
description: "Use this skill when encountering a bug, error, test failure, or unexpected behavior. Triggers: 'error', 'bug', 'broken', 'failing', 'crash', 'stack trace', 'not working', 'unexpected behavior', 'fix this', or any situation where code doesn't behave as expected."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Systematic Debugging
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Find and fix bugs through a structured 4-phase process. No guessing, no random changes, no "try this and see."
|
|
12
|
+
|
|
13
|
+
## The 4 Phases
|
|
14
|
+
|
|
15
|
+
### Phase 1: INVESTIGATE
|
|
16
|
+
Gather evidence before forming theories.
|
|
17
|
+
|
|
18
|
+
- Read the error message completely (including the stack trace)
|
|
19
|
+
- Identify the exact input that triggers the bug
|
|
20
|
+
- Check recent changes (git log, git diff)
|
|
21
|
+
- Reproduce the bug consistently
|
|
22
|
+
- Note what works and what doesn't
|
|
23
|
+
|
|
24
|
+
### Phase 2: DIAGNOSE
|
|
25
|
+
Form a hypothesis based on evidence.
|
|
26
|
+
|
|
27
|
+
- Trace execution from input to error
|
|
28
|
+
- Add targeted logging at key decision points
|
|
29
|
+
- Bisect: find the exact commit/line where behavior changed
|
|
30
|
+
- Check assumptions: are types what you think? Are values populated?
|
|
31
|
+
- Isolate: can you reproduce with a minimal example?
|
|
32
|
+
|
|
33
|
+
### Phase 3: FIX
|
|
34
|
+
Apply the minimal change that resolves the root cause.
|
|
35
|
+
|
|
36
|
+
- Fix the root cause, not the symptom
|
|
37
|
+
- Write a test that fails before the fix and passes after
|
|
38
|
+
- Keep the fix as small as possible
|
|
39
|
+
- Check for the same bug pattern elsewhere in the codebase
|
|
40
|
+
|
|
41
|
+
### Phase 4: VERIFY
|
|
42
|
+
Prove the fix works and doesn't break anything.
|
|
43
|
+
|
|
44
|
+
- Run the reproducer. Bug is gone.
|
|
45
|
+
- Run the full test suite. Nothing new is broken.
|
|
46
|
+
- Test edge cases around the fix
|
|
47
|
+
- Document what the bug was and why the fix works
|
|
48
|
+
|
|
49
|
+
## Rules
|
|
50
|
+
|
|
51
|
+
- Never guess. Gather evidence first.
|
|
52
|
+
- Reproduce before fixing. If you can't reproduce it, you can't verify it's fixed.
|
|
53
|
+
- One change at a time. Never make multiple changes and test them together.
|
|
54
|
+
- Root causes only. Band-aids create future bugs.
|
|
55
|
+
- Always write a regression test for the bug
|
|
56
|
+
|
|
57
|
+
## Stuck Detection (The Ralph Wiggum Loop)
|
|
58
|
+
|
|
59
|
+
If you've tried the same fix approach 3 times without progress:
|
|
60
|
+
1. Stop immediately
|
|
61
|
+
2. State explicitly: "I've tried X three times and it's not working"
|
|
62
|
+
3. Try a fundamentally different approach (different hypothesis, different tool, different angle)
|
|
63
|
+
4. If the alternative also fails after 2 attempts, escalate to the user with a summary of what was tried
|
|
64
|
+
|
|
65
|
+
Never keep applying the same fix hoping for a different result.
|
|
66
|
+
|
|
67
|
+
## Verbose Reasoning Transparency
|
|
68
|
+
|
|
69
|
+
During debugging sessions, inspect the model's reasoning blocks for hidden assumptions:
|
|
70
|
+
|
|
71
|
+
### When to Use
|
|
72
|
+
- Bug fix attempts that silently fail (code changes but behavior unchanged)
|
|
73
|
+
- Debugging non-deterministic issues where the model may be guessing
|
|
74
|
+
- Complex multi-step debugging where reasoning chain integrity matters
|
|
75
|
+
|
|
76
|
+
### Pattern
|
|
77
|
+
1. Enable extended thinking / reasoning blocks for debugging calls
|
|
78
|
+
2. After each debugging step, review the reasoning block for:
|
|
79
|
+
- Unstated assumptions ("I assume X is always true")
|
|
80
|
+
- Skipped verification ("this should work because...")
|
|
81
|
+
- Contradictions between reasoning and action
|
|
82
|
+
3. If reasoning reveals a faulty assumption, address the assumption directly rather than the symptom
|
|
83
|
+
|
|
84
|
+
### Rules
|
|
85
|
+
- Reasoning transparency is a debugging aid, not a performance optimization
|
|
86
|
+
- Use only when standard debugging phases aren't converging
|
|
87
|
+
- Flag any reasoning that contains "probably", "likely", or "should" without evidence
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tailwind-css
|
|
3
|
+
description: "Use this skill when styling with Tailwind CSS. Triggers: 'Tailwind', 'utility classes', 'tailwind config', 'tailwind.config', or any request specifying Tailwind for styling. Always fetch Context7 docs first as classes change between versions."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tailwind CSS
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Style applications with Tailwind utility classes. Configuration, responsive design, dark mode, component extraction, and custom plugins.
|
|
12
|
+
|
|
13
|
+
## Before You Start
|
|
14
|
+
|
|
15
|
+
**Context7:** ALWAYS fetch current Tailwind docs. Tailwind 4 changed significantly from Tailwind 3.
|
|
16
|
+
|
|
17
|
+
## Core Patterns
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<!-- Responsive: mobile-first -->
|
|
21
|
+
<div class="p-4 md:p-6 lg:p-8">
|
|
22
|
+
|
|
23
|
+
<!-- Dark mode -->
|
|
24
|
+
<div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">
|
|
25
|
+
|
|
26
|
+
<!-- Hover/Focus states -->
|
|
27
|
+
<button class="bg-blue-600 hover:bg-blue-700 focus:ring-2 focus:ring-blue-500">
|
|
28
|
+
|
|
29
|
+
<!-- Flexbox layout -->
|
|
30
|
+
<div class="flex items-center justify-between gap-4">
|
|
31
|
+
|
|
32
|
+
<!-- Grid layout -->
|
|
33
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Component Extraction
|
|
37
|
+
|
|
38
|
+
When a utility pattern repeats 3+ times, extract to a component (React) or @apply (CSS):
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
/* Only use @apply for very common patterns */
|
|
42
|
+
@layer components {
|
|
43
|
+
.btn-primary {
|
|
44
|
+
@apply px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Rules
|
|
50
|
+
|
|
51
|
+
- Fetch Context7 docs before writing Tailwind classes
|
|
52
|
+
- Mobile-first: write base styles for mobile, add breakpoint prefixes for larger screens
|
|
53
|
+
- Prefer semantic HTML + utilities over div soup
|
|
54
|
+
- Extract components, not utility classes (prefer React components over @apply)
|
|
55
|
+
- Use CSS variables via theme() for values used in JavaScript
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Taint Flow Tracer
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Provide deterministic source-to-sink traces for exploitability decisions.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
- `code_path`
|
|
8
|
+
- `candidate_source`
|
|
9
|
+
- `candidate_sink`
|
|
10
|
+
- `execution_context`
|
|
11
|
+
|
|
12
|
+
## Trace Method
|
|
13
|
+
### Step 1: Source Definition
|
|
14
|
+
1. Define exact taint origin.
|
|
15
|
+
2. Classify taint trust level and attacker influence.
|
|
16
|
+
|
|
17
|
+
### Step 2: Propagation Tracking
|
|
18
|
+
1. Follow variable flow through wrappers and helpers.
|
|
19
|
+
2. Track type conversion, serialization, and parsing boundaries.
|
|
20
|
+
3. Track async/task boundary hops.
|
|
21
|
+
|
|
22
|
+
### Step 3: Checkpoint Evaluation
|
|
23
|
+
1. Record validation and canonicalization points.
|
|
24
|
+
2. Determine context fitness of each sanitizer.
|
|
25
|
+
3. Identify alternate branches that skip checks.
|
|
26
|
+
|
|
27
|
+
### Step 4: Sink Reachability
|
|
28
|
+
1. Confirm sink invocation path is executable.
|
|
29
|
+
2. Confirm attacker control survives to sink-relevant bytes.
|
|
30
|
+
3. Note control granularity (full, partial, none).
|
|
31
|
+
|
|
32
|
+
### Step 5: Verdict
|
|
33
|
+
1. `tainted_reachable`
|
|
34
|
+
2. `tainted_blocked`
|
|
35
|
+
3. `path_unknown`
|
|
36
|
+
|
|
37
|
+
## Required Trace Fields
|
|
38
|
+
- `source`
|
|
39
|
+
- `path_nodes`
|
|
40
|
+
- `checkpoints`
|
|
41
|
+
- `sink`
|
|
42
|
+
- `control_level`
|
|
43
|
+
- `verdict`
|
|
44
|
+
|
|
45
|
+
## Output Contract
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"trace_id": "",
|
|
49
|
+
"source": {},
|
|
50
|
+
"path_nodes": [],
|
|
51
|
+
"checkpoints": [],
|
|
52
|
+
"sink": {},
|
|
53
|
+
"verdict": ""
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Failure Modes
|
|
58
|
+
- Stopping at static reference without runtime-feasible path.
|
|
59
|
+
- Treating generic sanitization as context-safe by default.
|
|
60
|
+
|
|
61
|
+
## Quality Checklist
|
|
62
|
+
- [ ] Cross-file and cross-layer flow included.
|
|
63
|
+
- [ ] Checkpoints evaluated for bypassability.
|
|
64
|
+
- [ ] Control level at sink is explicit.
|
|
65
|
+
|
|
66
|
+
## Operator Notes
|
|
67
|
+
### Cross-Layer Trace Requirements
|
|
68
|
+
- Include controller, service, data access, and sink layers.
|
|
69
|
+
- Include serialization/deserialization boundary handling.
|
|
70
|
+
- Include async boundaries (queue/job/event) where data crosses trust zones.
|
|
71
|
+
|
|
72
|
+
### Access-Control Audit Rules
|
|
73
|
+
- Verify policy check location relative to resource fetch.
|
|
74
|
+
- Verify policy check occurs on every variant path.
|
|
75
|
+
- Verify tenant scoping is enforced at data query layer.
|
|
76
|
+
|
|
77
|
+
### Sanitization Audit Rules
|
|
78
|
+
- Context-match sanitizer to sink type.
|
|
79
|
+
- Confirm canonicalization happens before validation.
|
|
80
|
+
- Check for alternate branch paths that skip sanitizer.
|
|
81
|
+
|
|
82
|
+
## Conditional Decision Matrix
|
|
83
|
+
| Condition | Action | Evidence Requirement |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| Source passes through helper wrappers | inline helper logic into trace | wrapper-expanded path |
|
|
86
|
+
| Policy check exists after data fetch | test prefetch exposure and side-effects | order-of-operations trace |
|
|
87
|
+
| Sanitizer exists but context mismatch | craft context-correct exploit hypothesis | sink-context mismatch proof |
|
|
88
|
+
| Async boundary carries tainted data | trace serialization and consumer validation | producer-consumer trace |
|
|
89
|
+
| Sibling route has weaker guards | run parity scan across sibling handlers | guard parity matrix |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Teaching Agent Team
|
|
2
|
+
## Pipeline
|
|
3
|
+
1. **Researcher**: search ArXiv, web for current information on the topic
|
|
4
|
+
2. **Curriculum Designer**: structure content into lessons with learning objectives
|
|
5
|
+
3. **Content Generator**: produce lesson content (explanations, examples, analogies)
|
|
6
|
+
4. **Quiz Creator**: generate assessment questions (multiple choice, short answer, exercises)
|
|
7
|
+
|
|
8
|
+
## Lesson Format
|
|
9
|
+
```markdown
|
|
10
|
+
## Lesson: [Title]
|
|
11
|
+
**Objective**: [What the learner will be able to do after this lesson]
|
|
12
|
+
**Prerequisites**: [What they should already know]
|
|
13
|
+
**Duration**: [Estimated time]
|
|
14
|
+
|
|
15
|
+
### Explanation
|
|
16
|
+
[Core concepts with examples and analogies]
|
|
17
|
+
|
|
18
|
+
### Practice
|
|
19
|
+
[Guided exercises]
|
|
20
|
+
|
|
21
|
+
### Assessment
|
|
22
|
+
[Questions testing the objective]
|
|
23
|
+
|
|
24
|
+
### Further Reading
|
|
25
|
+
[Resources for deeper exploration]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
- Every lesson has a measurable learning objective
|
|
30
|
+
- Examples before abstractions (show, then explain)
|
|
31
|
+
- Increasing difficulty within each lesson
|
|
32
|
+
- Assessment must test the stated objective, not trivia
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tech-debt-manager
|
|
3
|
+
description: "Use this skill when the user asks about technical debt, code quality assessment, refactoring prioritization, or codebase health. Triggers: 'tech debt', 'refactor', 'cleanup', 'legacy code', 'code smell', 'TODO', 'HACK', 'architecture review', or requests to assess and plan codebase improvements."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tech Debt Manager
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Classify, prioritize, and track technical debt. Automated detection, systematic reduction, and clear reporting.
|
|
12
|
+
|
|
13
|
+
## Debt Classification
|
|
14
|
+
|
|
15
|
+
- **Blocking**: Prevents new features or causes incidents. Fix immediately.
|
|
16
|
+
- **Friction**: Slows development. Schedule within current sprint.
|
|
17
|
+
- **Cosmetic**: Annoys developers but doesn't slow work. Fix opportunistically.
|
|
18
|
+
|
|
19
|
+
## Priority Score
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Priority = (Impact × Frequency) / Effort
|
|
23
|
+
|
|
24
|
+
Impact: 1 (minor) to 5 (critical)
|
|
25
|
+
Frequency: 1 (rare) to 5 (every day)
|
|
26
|
+
Effort: 1 (trivial) to 5 (major refactor)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Score > 5: fix now. Score 2-5: schedule. Score < 2: defer.
|
|
30
|
+
|
|
31
|
+
## Automated Detection
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# TODOs and HACKs
|
|
35
|
+
grep -rn "TODO\|HACK\|FIXME\|XXX\|WORKAROUND" src/ --include="*.ts"
|
|
36
|
+
|
|
37
|
+
# Type gaps
|
|
38
|
+
grep -rn "as any\|: any\|@ts-ignore\|@ts-expect-error" src/ --include="*.ts"
|
|
39
|
+
|
|
40
|
+
# Skipped tests
|
|
41
|
+
grep -rn "\.skip\|xit\|xdescribe\|test\.todo" src/ --include="*.test.*"
|
|
42
|
+
|
|
43
|
+
# Large files (complexity indicator)
|
|
44
|
+
find src/ -name "*.ts" | xargs wc -l | sort -rn | head -20
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Tracking Format
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
# Tech Debt Register
|
|
51
|
+
|
|
52
|
+
## Blocking
|
|
53
|
+
- [ ] **[B-001]** Missing error handling on payment endpoint (Impact: 5, Freq: 3, Effort: 2, Score: 7.5)
|
|
54
|
+
|
|
55
|
+
## Friction
|
|
56
|
+
- [ ] **[F-001]** Duplicated validation logic in 3 route handlers (Impact: 3, Freq: 4, Effort: 2, Score: 6)
|
|
57
|
+
|
|
58
|
+
## Cosmetic
|
|
59
|
+
- [ ] **[C-001]** Inconsistent naming in user module (Impact: 1, Freq: 2, Effort: 1, Score: 2)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Rules
|
|
63
|
+
|
|
64
|
+
- Every "quick fix" must have a TODO with a ticket/issue reference
|
|
65
|
+
- Review debt register weekly, reprioritize monthly
|
|
66
|
+
- Allocate 20% of sprint capacity to debt reduction
|
|
67
|
+
- Never add new debt without documenting it
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: technical-documentation
|
|
3
|
+
description: "Use this skill when the user asks to write API documentation, architecture docs, onboarding guides, runbooks, or any technical reference material. Triggers: 'API docs', 'documentation', 'onboarding guide', 'runbook', 'architecture doc', 'technical reference', 'developer guide', or requests for documentation that developers will use."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Technical Documentation
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Write clear, accurate technical documentation. API references, architecture guides, onboarding docs, runbooks, and troubleshooting guides.
|
|
12
|
+
|
|
13
|
+
## Document Types
|
|
14
|
+
|
|
15
|
+
### API Reference
|
|
16
|
+
- Endpoint, method, URL, parameters (required/optional), request body schema, response schema, error codes, example request/response
|
|
17
|
+
- Use OpenAPI/Swagger for REST APIs
|
|
18
|
+
|
|
19
|
+
### Architecture Doc
|
|
20
|
+
- System overview diagram (describe, don't draw unless asked)
|
|
21
|
+
- Component descriptions and responsibilities
|
|
22
|
+
- Data flow between components
|
|
23
|
+
- Technology choices with rationale
|
|
24
|
+
- Deployment topology
|
|
25
|
+
|
|
26
|
+
### Onboarding Guide
|
|
27
|
+
- Prerequisites (with version numbers)
|
|
28
|
+
- Step-by-step setup from zero
|
|
29
|
+
- "Hello world" equivalent to verify setup works
|
|
30
|
+
- Common gotchas and solutions
|
|
31
|
+
- Where to find help
|
|
32
|
+
|
|
33
|
+
### Runbook
|
|
34
|
+
- When to use this runbook (trigger conditions)
|
|
35
|
+
- Step-by-step procedure with exact commands
|
|
36
|
+
- Expected output at each step
|
|
37
|
+
- Rollback procedure
|
|
38
|
+
- Escalation path if steps fail
|
|
39
|
+
|
|
40
|
+
## Rules
|
|
41
|
+
|
|
42
|
+
- Every code example must be tested and working
|
|
43
|
+
- Version numbers on all dependencies
|
|
44
|
+
- Commands must include the full context (which directory, which user)
|
|
45
|
+
- Assume the reader is competent but unfamiliar with this specific system
|
|
46
|
+
- Update docs when code changes (docs and code in the same PR)
|
|
47
|
+
- Link to related docs, never duplicate content across documents.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-driven-development
|
|
3
|
+
description: "Use this skill when implementing new features, building new code, or when the user asks for test-first development. Triggers: 'implement', 'build feature', 'write code', 'TDD', 'test first', 'test-driven', 'write tests', or any request to build new functionality. The Iron Law: no production code without a failing test first."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Test-Driven Development
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Build features using the red-green-refactor cycle. Write a failing test, make it pass with minimal code, then refactor. Produces code that works correctly and has test coverage by default.
|
|
12
|
+
|
|
13
|
+
## The Cycle
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
1. RED: Write a test that describes the desired behavior. Run it. It fails.
|
|
17
|
+
2. GREEN: Write the minimum code to make the test pass. Nothing more.
|
|
18
|
+
3. REFACTOR: Clean up the code. Tests still pass.
|
|
19
|
+
4. REPEAT
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Test Structure
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
describe("UserService", () => {
|
|
26
|
+
describe("createUser", () => {
|
|
27
|
+
it("creates a user with valid input", async () => {
|
|
28
|
+
const user = await createUser({ email: "test@example.com", name: "Test" });
|
|
29
|
+
expect(user.id).toBeDefined();
|
|
30
|
+
expect(user.email).toBe("test@example.com");
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("rejects duplicate email", async () => {
|
|
34
|
+
await createUser({ email: "test@example.com", name: "First" });
|
|
35
|
+
await expect(
|
|
36
|
+
createUser({ email: "test@example.com", name: "Second" })
|
|
37
|
+
).rejects.toThrow("Email already exists");
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("validates email format", async () => {
|
|
41
|
+
await expect(
|
|
42
|
+
createUser({ email: "not-an-email", name: "Test" })
|
|
43
|
+
).rejects.toThrow("Invalid email");
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## What to Test
|
|
50
|
+
|
|
51
|
+
- Happy path (valid input produces expected output)
|
|
52
|
+
- Edge cases (empty, null, boundary values, max length)
|
|
53
|
+
- Error cases (invalid input, missing data, network failure)
|
|
54
|
+
- Business rules (permissions, calculations, state transitions)
|
|
55
|
+
|
|
56
|
+
## What NOT to Test
|
|
57
|
+
|
|
58
|
+
- Framework internals (React rendering, Express routing)
|
|
59
|
+
- Third-party library behavior
|
|
60
|
+
- Trivial getters/setters with no logic
|
|
61
|
+
- Implementation details (test behavior, not structure)
|
|
62
|
+
|
|
63
|
+
## Rules
|
|
64
|
+
|
|
65
|
+
- The Iron Law: no production code without a failing test first
|
|
66
|
+
- Tests must be independent (no shared mutable state between tests)
|
|
67
|
+
- Tests must be fast (mock external services, use in-memory databases)
|
|
68
|
+
- Test names describe behavior, not implementation
|
|
69
|
+
- One assertion per test (or one logical assertion group)
|
|
70
|
+
- Run the full test suite before marking any task complete
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: theme-factory
|
|
3
|
+
description: "Use this skill when the user asks to create a design system, theme, dark mode, brand styling, or CSS variable system. Triggers: 'theme', 'design system', 'dark mode', 'light mode', 'brand colors', 'CSS variables', 'styling system', 'color palette', or any request for consistent visual theming across a project."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Theme Factory
|
|
8
|
+
|
|
9
|
+
## What This Skill Does
|
|
10
|
+
|
|
11
|
+
Create complete theming systems: color palettes, CSS variable architectures, dark/light mode switching, design tokens, and brand styling. From a single color to a full design system.
|
|
12
|
+
|
|
13
|
+
## When to Activate
|
|
14
|
+
|
|
15
|
+
- User wants dark mode / light mode
|
|
16
|
+
- User wants brand colors applied consistently
|
|
17
|
+
- User wants a design system or style guide
|
|
18
|
+
- User wants to theme an existing project
|
|
19
|
+
- User says "make it look professional" or "consistent styling"
|
|
20
|
+
|
|
21
|
+
## Color System
|
|
22
|
+
|
|
23
|
+
### Generate from a single brand color
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
:root {
|
|
27
|
+
/* Brand seed color */
|
|
28
|
+
--brand: #2563eb;
|
|
29
|
+
|
|
30
|
+
/* Derived palette */
|
|
31
|
+
--brand-50: #eff6ff;
|
|
32
|
+
--brand-100: #dbeafe;
|
|
33
|
+
--brand-200: #bfdbfe;
|
|
34
|
+
--brand-300: #93c5fd;
|
|
35
|
+
--brand-400: #60a5fa;
|
|
36
|
+
--brand-500: #3b82f6; /* Primary */
|
|
37
|
+
--brand-600: #2563eb; /* Brand */
|
|
38
|
+
--brand-700: #1d4ed8;
|
|
39
|
+
--brand-800: #1e40af;
|
|
40
|
+
--brand-900: #1e3a8a;
|
|
41
|
+
--brand-950: #172554;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Semantic Colors
|
|
46
|
+
|
|
47
|
+
```css
|
|
48
|
+
:root {
|
|
49
|
+
/* Surface hierarchy */
|
|
50
|
+
--color-bg: #ffffff;
|
|
51
|
+
--color-surface: #f8fafc;
|
|
52
|
+
--color-surface-raised: #ffffff;
|
|
53
|
+
--color-surface-overlay: rgba(0, 0, 0, 0.5);
|
|
54
|
+
|
|
55
|
+
/* Text hierarchy */
|
|
56
|
+
--color-text: #0f172a;
|
|
57
|
+
--color-text-secondary: #475569;
|
|
58
|
+
--color-text-muted: #94a3b8;
|
|
59
|
+
--color-text-inverse: #ffffff;
|
|
60
|
+
|
|
61
|
+
/* Interactive */
|
|
62
|
+
--color-primary: var(--brand-600);
|
|
63
|
+
--color-primary-hover: var(--brand-700);
|
|
64
|
+
--color-primary-text: #ffffff;
|
|
65
|
+
|
|
66
|
+
/* Feedback */
|
|
67
|
+
--color-success: #16a34a;
|
|
68
|
+
--color-warning: #d97706;
|
|
69
|
+
--color-error: #dc2626;
|
|
70
|
+
--color-info: #2563eb;
|
|
71
|
+
|
|
72
|
+
/* Borders */
|
|
73
|
+
--color-border: #e2e8f0;
|
|
74
|
+
--color-border-strong: #cbd5e1;
|
|
75
|
+
--color-focus-ring: var(--brand-500);
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Dark Mode
|
|
80
|
+
|
|
81
|
+
### CSS-only (prefers-color-scheme)
|
|
82
|
+
```css
|
|
83
|
+
@media (prefers-color-scheme: dark) {
|
|
84
|
+
:root {
|
|
85
|
+
--color-bg: #0f172a;
|
|
86
|
+
--color-surface: #1e293b;
|
|
87
|
+
--color-surface-raised: #334155;
|
|
88
|
+
--color-text: #f1f5f9;
|
|
89
|
+
--color-text-secondary: #94a3b8;
|
|
90
|
+
--color-text-muted: #64748b;
|
|
91
|
+
--color-border: #334155;
|
|
92
|
+
--color-border-strong: #475569;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### User-toggleable (class-based)
|
|
98
|
+
```css
|
|
99
|
+
.dark {
|
|
100
|
+
--color-bg: #0f172a;
|
|
101
|
+
--color-surface: #1e293b;
|
|
102
|
+
--color-text: #f1f5f9;
|
|
103
|
+
/* ... */
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```javascript
|
|
108
|
+
// Toggle
|
|
109
|
+
function toggleTheme() {
|
|
110
|
+
const isDark = document.documentElement.classList.toggle("dark");
|
|
111
|
+
localStorage.setItem("theme", isDark ? "dark" : "light");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Initialize from stored preference
|
|
115
|
+
const stored = localStorage.getItem("theme");
|
|
116
|
+
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
117
|
+
if (stored === "dark" || (!stored && prefersDark)) {
|
|
118
|
+
document.documentElement.classList.add("dark");
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Design Tokens
|
|
123
|
+
|
|
124
|
+
### Spacing
|
|
125
|
+
```css
|
|
126
|
+
:root {
|
|
127
|
+
--space-1: 0.25rem; /* 4px */
|
|
128
|
+
--space-2: 0.5rem; /* 8px */
|
|
129
|
+
--space-3: 0.75rem; /* 12px */
|
|
130
|
+
--space-4: 1rem; /* 16px */
|
|
131
|
+
--space-6: 1.5rem; /* 24px */
|
|
132
|
+
--space-8: 2rem; /* 32px */
|
|
133
|
+
--space-12: 3rem; /* 48px */
|
|
134
|
+
--space-16: 4rem; /* 64px */
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Typography
|
|
139
|
+
```css
|
|
140
|
+
:root {
|
|
141
|
+
--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
142
|
+
--font-mono: "JetBrains Mono", "Fira Code", monospace;
|
|
143
|
+
|
|
144
|
+
--text-xs: 0.75rem;
|
|
145
|
+
--text-sm: 0.875rem;
|
|
146
|
+
--text-base: 1rem;
|
|
147
|
+
--text-lg: 1.125rem;
|
|
148
|
+
--text-xl: 1.25rem;
|
|
149
|
+
--text-2xl: 1.5rem;
|
|
150
|
+
--text-3xl: 1.875rem;
|
|
151
|
+
|
|
152
|
+
--leading-tight: 1.25;
|
|
153
|
+
--leading-normal: 1.5;
|
|
154
|
+
--leading-relaxed: 1.75;
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Shadows and Borders
|
|
159
|
+
```css
|
|
160
|
+
:root {
|
|
161
|
+
--radius-sm: 4px;
|
|
162
|
+
--radius-md: 8px;
|
|
163
|
+
--radius-lg: 12px;
|
|
164
|
+
--radius-full: 9999px;
|
|
165
|
+
|
|
166
|
+
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
167
|
+
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
|
168
|
+
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
|
169
|
+
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Transitions
|
|
174
|
+
```css
|
|
175
|
+
:root {
|
|
176
|
+
--transition-fast: 150ms ease;
|
|
177
|
+
--transition-normal: 200ms ease;
|
|
178
|
+
--transition-slow: 300ms ease;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@media (prefers-reduced-motion: reduce) {
|
|
182
|
+
:root {
|
|
183
|
+
--transition-fast: 0ms;
|
|
184
|
+
--transition-normal: 0ms;
|
|
185
|
+
--transition-slow: 0ms;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Component Styling Patterns
|
|
191
|
+
|
|
192
|
+
### Button variants
|
|
193
|
+
```css
|
|
194
|
+
.btn {
|
|
195
|
+
padding: var(--space-2) var(--space-4);
|
|
196
|
+
border-radius: var(--radius-md);
|
|
197
|
+
font-weight: 500;
|
|
198
|
+
transition: all var(--transition-fast);
|
|
199
|
+
cursor: pointer;
|
|
200
|
+
border: none;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.btn-primary {
|
|
204
|
+
background: var(--color-primary);
|
|
205
|
+
color: var(--color-primary-text);
|
|
206
|
+
}
|
|
207
|
+
.btn-primary:hover { background: var(--color-primary-hover); }
|
|
208
|
+
|
|
209
|
+
.btn-secondary {
|
|
210
|
+
background: transparent;
|
|
211
|
+
color: var(--color-text);
|
|
212
|
+
border: 1px solid var(--color-border);
|
|
213
|
+
}
|
|
214
|
+
.btn-secondary:hover { background: var(--color-surface); }
|
|
215
|
+
|
|
216
|
+
.btn-danger {
|
|
217
|
+
background: var(--color-error);
|
|
218
|
+
color: white;
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Rules
|
|
223
|
+
|
|
224
|
+
- Always define semantic color names, never use raw hex in components
|
|
225
|
+
- Always support dark mode (at minimum via `prefers-color-scheme`)
|
|
226
|
+
- Always respect `prefers-reduced-motion`
|
|
227
|
+
- Test contrast ratios: 4.5:1 minimum for normal text, 3:1 for large text
|
|
228
|
+
- Keep the number of unique colors under 20 (including shades)
|
|
229
|
+
- Export theme as CSS custom properties (universal, framework-agnostic)
|
|
230
|
+
- Provide both CSS-only and JS-toggle dark mode options
|
|
231
|
+
|
|
232
|
+
## Verification
|
|
233
|
+
|
|
234
|
+
1. Light mode and dark mode both render correctly
|
|
235
|
+
2. All text meets WCAG AA contrast ratios
|
|
236
|
+
3. Focus states are visible in both modes
|
|
237
|
+
4. Animations respect reduced-motion preference
|
|
238
|
+
5. Theme toggle persists across page reloads
|
|
239
|
+
|
|
240
|
+
## Integration with Other Skills
|
|
241
|
+
|
|
242
|
+
- **frontend-development:** Apply theme to web projects
|
|
243
|
+
- **react-development:** Use CSS variables in React component styles
|
|
244
|
+
- **web-artifacts-builder:** Embed minimal theme in single-file apps
|