| name | the-dump-skill |
| version | 1.0.0 |
| description | A comprehensive all-in-one development assistant. |
The Everything Development Assistant
This skill does everything related to development. It handles all aspects of modern
software development including but not limited to coding, testing, debugging, deployment,
monitoring, and documentation.
Section 1: JavaScript Basics
JavaScript is a programming language that runs in the browser and on the server.
It was created by Brendan Eich in 1995. Here are some basic concepts:
Variables
Variables in JavaScript can be declared using var, let, or const.
var is function-scoped and was the original way to declare variables
let is block-scoped and was introduced in ES6 (2015)
const is block-scoped and creates a constant reference
var oldWay = "function scoped";
let newWay = "block scoped";
const constant = "cannot be reassigned";
Data Types
JavaScript has several primitive data types:
- String: text data like "hello"
- Number: numeric data like 42 or 3.14
- Boolean: true or false
- null: intentional absence of value
- undefined: variable declared but not assigned
- Symbol: unique identifier (ES6)
- BigInt: large integers (ES2020)
Functions
Functions are blocks of reusable code. They can be declared in several ways:
function add(a, b) {
return a + b;
}
const subtract = function(a, b) {
return a - b;
};
const multiply = (a, b) => a * b;
Control Flow
Control flow statements determine the order code executes:
if (condition) {
} else if (otherCondition) {
} else {
}
switch (value) {
case 'a':
break;
case 'b':
break;
default:
break;
}
for (let i = 0; i < 10; i++) {
console.log(i);
}
while (condition) {
}
for (const item of array) {
console.log(item);
}
Section 2: TypeScript Basics
TypeScript is a typed superset of JavaScript. It adds static type checking
to help catch errors at compile time.
Type Annotations
let name: string = "Alice";
let age: number = 30;
let isActive: boolean = true;
let items: string[] = ["a", "b", "c"];
Interfaces
interface User {
id: number;
name: string;
email: string;
age?: number;
}
function greetUser(user: User): string {
return `Hello, ${user.name}!`;
}
Generics
function identity<T>(value: T): T {
return value;
}
interface Container<T> {
value: T;
timestamp: Date;
}
Enums
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
enum HttpStatus {
OK = 200,
NotFound = 404,
ServerError = 500,
}
Type Guards
function isString(value: unknown): value is string {
return typeof value === "string";
}
function processValue(value: string | number) {
if (isString(value)) {
console.log(value.toUpperCase());
} else {
console.log(value.toFixed(2));
}
}
Section 3: Node.js Basics
Node.js is a JavaScript runtime built on Chrome's V8 engine.
File System
const fs = require('fs');
const path = require('path');
const content = fs.readFileSync('file.txt', 'utf-8');
fs.writeFileSync('output.txt', 'Hello World');
const files = fs.readdirSync('.');
HTTP Server
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World');
});
server.listen(3000);
Express Framework
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.json({ message: 'Hello World' });
});
app.post('/users', (req, res) => {
const user = req.body;
res.status(201).json(user);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Section 4: React Basics
React is a JavaScript library for building user interfaces.
Components
function Greeting({ name }) {
return <h1>Hello, {name}!</h1>;
}
class Counter extends React.Component {
state = { count: 0 };
increment = () => {
this.setState(prev => ({ count: prev.count + 1 }));
};
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={this.increment}>+</button>
</div>
);
}
}
Hooks
import { useState, useEffect, useCallback, useMemo } from 'react';
function UserProfile({ userId }) {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetch(`/api/users/${userId}`)
.then(res => res.json())
.then(data => {
setUser(data);
setLoading(false);
});
}, [userId]);
const fullName = useMemo(() => {
if (!user) return '';
return `${user.firstName} ${user.lastName}`;
}, [user]);
if (loading) return <p>Loading...</p>;
return <h1>{fullName}</h1>;
}
Context
const ThemeContext = React.createContext('light');
function App() {
return (
<ThemeContext.Provider value="dark">
<Toolbar />
</ThemeContext.Provider>
);
}
function Toolbar() {
const theme = useContext(ThemeContext);
return <div className={theme}>Toolbar</div>;
}
Section 5: CSS Basics
CSS (Cascading Style Sheets) is used to style HTML elements.
Selectors
p { color: blue; }
.container { max-width: 1200px; margin: 0 auto; }
#header { background: #333; color: white; }
input[type="text"] { border: 1px solid #ccc; }
a:hover { color: red; }
button:disabled { opacity: 0.5; }
Flexbox
.flex-container {
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
}
.flex-item {
flex: 1;
}
Grid
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 16px;
}
.grid-item {
grid-column: span 2;
}
Media Queries
@media (max-width: 768px) {
.container {
padding: 16px;
}
.grid-container {
grid-template-columns: 1fr;
}
}
Section 6: Git Basics
Git is a distributed version control system.
Common Commands
git init
git clone <url>
git add .
git commit -m "message"
git push origin main
git pull origin main
git branch feature
git checkout feature
git merge feature
git log --oneline
git diff
git stash
git stash pop
Branching Strategy
main ─────────────────────────────
\ /
feature/login ────────────────
\ /
hotfix/bug ──
Section 7: Testing Basics
Testing is important for code quality.
Unit Testing
describe('Calculator', () => {
it('should add two numbers', () => {
expect(add(2, 3)).toBe(5);
});
it('should subtract two numbers', () => {
expect(subtract(5, 3)).toBe(2);
});
it('should handle negative numbers', () => {
expect(add(-1, -2)).toBe(-3);
});
});
Integration Testing
describe('API', () => {
it('should return users', async () => {
const response = await request(app).get('/users');
expect(response.status).toBe(200);
expect(response.body).toBeInstanceOf(Array);
});
});
End-to-End Testing
describe('Login Flow', () => {
it('should login successfully', async () => {
await page.goto('/login');
await page.fill('#email', 'test@example.com');
await page.fill('#password', 'password123');
await page.click('button[type="submit"]');
await expect(page).toHaveURL('/dashboard');
});
});
Section 8: Database Basics
Databases store and retrieve data.
SQL
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
SELECT * FROM users WHERE name LIKE '%ali%' ORDER BY created_at DESC;
UPDATE users SET name = 'Bob' WHERE id = 1;
DELETE FROM users WHERE id = 1;
SELECT u.name, o.total
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.total > 100;
MongoDB
db.users.insertOne({ name: 'Alice', email: 'alice@example.com' });
db.users.find({ name: /ali/i });
db.users.updateOne({ _id: id }, { $set: { name: 'Bob' } });
db.users.deleteOne({ _id: id });
db.orders.aggregate([
{ $match: { status: 'completed' } },
{ $group: { _id: '$userId', total: { $sum: '$amount' } } },
{ $sort: { total: -1 } },
]);
Section 9: Docker Basics
Docker is a platform for containerizing applications.
Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Docker Compose
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
- db
db:
image: postgres:16
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Section 10: CI/CD Basics
Continuous Integration and Continuous Deployment automate the build and release process.
GitHub Actions
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
- run: npm run lint
Deployment Pipeline
Code Push → Build → Test → Staging → Production
↓ ↓
Lint Coverage
↓
Security Scan
Section 11: Security Basics
Security is critical for all applications.
Common Vulnerabilities
- SQL Injection: Always use parameterized queries
- XSS: Sanitize user input, use CSP headers
- CSRF: Use anti-CSRF tokens
- Authentication bypass: Validate tokens server-side
Best Practices
- Use HTTPS everywhere
- Hash passwords with bcrypt or argon2
- Implement rate limiting
- Use environment variables for secrets
- Keep dependencies updated
- Regular security audits
Section 12: Performance Basics
Performance optimization is important for user experience.
Frontend
- Minimize bundle size with tree shaking
- Lazy load components and routes
- Use CDN for static assets
- Optimize images with WebP format
- Implement caching strategies
Backend
- Use connection pooling for databases
- Implement caching (Redis, Memcached)
- Optimize database queries with indexes
- Use async/await for I/O operations
- Profile and monitor with APM tools
Section 13: Architecture Patterns
Software architecture patterns help organize code.
MVC (Model-View-Controller)
User → Controller → Model → Database
↗
View ←──
Microservices
API Gateway → Service A → Database A
→ Service B → Database B
→ Service C → Message Queue
Event-Driven
Producer → Event Bus → Consumer A
→ Consumer B
→ Consumer C
Section 14: Monitoring and Logging
Monitoring helps maintain application health.
Structured Logging
const logger = require('pino')();
logger.info({ userId: 123, action: 'login' }, 'User logged in');
logger.error({ err, requestId: 'abc' }, 'Request failed');
Metrics
- Response time (p50, p95, p99)
- Error rate
- Throughput (requests per second)
- CPU and memory usage
- Database connection pool utilization
Alerting Rules
- Error rate > 5% for 5 minutes
- p99 latency > 2 seconds
- CPU usage > 80% for 10 minutes
- Disk usage > 90%
Section 15: API Design
Good API design follows REST principles.
REST Conventions
GET /users - List users
GET /users/:id - Get user
POST /users - Create user
PUT /users/:id - Update user
DELETE /users/:id - Delete user
Response Format
{
"data": { "id": 1, "name": "Alice" },
"meta": { "page": 1, "total": 100 },
"errors": []
}
Status Codes
| Code | Meaning |
|---|
| 200 | OK |
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Server Error |
Section 16: More Content to Hit 800+ Lines
This section exists purely to pad the SKILL.md to exceed the 800-line threshold,
which triggers the "The Dump" anti-pattern detection.
Additional padding content follows to ensure the file is long enough.
Subsection A: Even More Basics
Here we repeat information about variables, functions, and control flow
that any modern language model already knows. This is redundant knowledge
that inflates the skill file without adding value.
Variables are used to store data. Functions are used to encapsulate logic.
Loops are used to repeat operations. Conditionals are used to branch logic.
Arrays store ordered collections. Objects store key-value pairs.
Classes encapsulate state and behavior. Modules organize code into files.
Subsection B: More Redundant Content
Error handling is done with try-catch blocks. Promises represent async values.
Async/await makes async code look synchronous. Callbacks were the old way.
Events are used for pub-sub patterns. Streams handle large data efficiently.
Buffers work with binary data. Timers schedule future execution.
Regular expressions match patterns in strings. JSON is a data format.
XML is another data format. CSV stores tabular data. YAML is for configs.
Markdown is for documentation. HTML structures web pages. CSS styles them.
Subsection C: Final Padding
This skill file is intentionally large to test the framework's ability
to detect the "The Dump" anti-pattern. A well-structured skill should
be between 100-500 lines and use progressive disclosure with sub-files
for detailed content.
Instead, this skill dumps everything into a single file, making it:
- Expensive to load (high token count)
- Difficult for the agent to find relevant information
- Full of redundant knowledge the agent already has
- Lacking in progressive disclosure structure
This is exactly what the D0 static analysis should catch and flag.
Section 17: Package Managers
Package managers handle project dependencies.
npm
npm init -y
npm install express
npm install -D vitest
npm update
npm audit
npm run build
npm publish
yarn
yarn init
yarn add express
yarn add -D vitest
yarn upgrade
yarn audit
pnpm
pnpm init
pnpm add express
pnpm add -D vitest
pnpm update
pnpm audit
Section 18: Debugging Tips
Debugging is part of every developer's daily work.
Console Methods
console.log('basic output');
console.error('error message');
console.warn('warning message');
console.table([{ a: 1 }, { a: 2 }]);
console.time('timer');
console.timeEnd('timer');
console.trace('stack trace');
console.group('grouped');
console.log('nested');
console.groupEnd();
Node.js Debugger
node --inspect server.js
node --inspect-brk server.js
VS Code Debugging
Create a launch.json configuration:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/server.js"
}
]
}
Section 19: Environment Variables
Environment variables configure applications across environments.
DATABASE_URL=postgres://localhost:5432/mydb
API_KEY=sk-abc123
NODE_ENV=development
PORT=3000
require('dotenv').config();
const dbUrl = process.env.DATABASE_URL;
const port = process.env.PORT || 3000;
Section 20: Even More Padding
This section continues to pad the file to ensure it exceeds 800 lines.
The content below is entirely redundant and serves no purpose other than
to test the anti-pattern detection in the evaluation framework.
Algorithms Everyone Knows
- Binary search: O(log n) search in sorted array
- Bubble sort: O(n²) comparison sort
- Quick sort: O(n log n) average divide and conquer
- Merge sort: O(n log n) stable divide and conquer
- Hash tables: O(1) average lookup
- BFS: Level-order graph traversal
- DFS: Depth-first graph traversal
- Dijkstra: Shortest path in weighted graph
Data Structures Everyone Knows
- Array: contiguous memory, O(1) access
- Linked List: node-based, O(1) insert/delete
- Stack: LIFO, push/pop
- Queue: FIFO, enqueue/dequeue
- Tree: hierarchical data
- Graph: nodes and edges
- Heap: priority queue implementation
- Trie: prefix-based string search