boundary-bbcr-fallback
Execute automatic BBCR (Collapse-Rebirth Correction) when knowledge boundaries are exceeded or reasoning fails.
Design RESTful API architecture
$ npx -y skills add qdhenry/Claude-Command-Suite --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/design-rest-apiContext preview
What this command does when you run it.
Design RESTful API architecture
Design RESTful API architecture
1. **API Design Strategy and Planning**
2. **RESTful Resource Design**
**Express.js API Structure:**
// routes/api/v1/index.js
const express = require('express');
const router = express.Router();
// Resource-based routing structure
const userRoutes = require('./users');
const productRoutes = require('./products');
const orderRoutes = require('./orders');
const authRoutes = require('./auth');
// API versioning and middleware
router.use('/auth', authRoutes);
router.use('/users', userRoutes);
router.use('/products', productRoutes);
router.use('/orders', orderRoutes);
module.exports = router;
// routes/api/v1/users.js
const express = require('express');
const router = express.Router();
const { validateRequest, authenticate, authorize } = require('../../../middleware');
const userController = require('../../../controllers/userController');
const userValidation = require('../../../validations/userValidation');
// User resource endpoints
router.get('/',
authenticate,
authorize(['admin', 'manager']),
validateRequest(userValidation.listUsers),
userController.listUsers
);
router.get('/:id',
authenticate,
validateRequest(userValidation.getUser),
userController.getUser
);
router.post('/',
authenticate,
authorize(['admin']),
validateRequest(userValidation.createUser),
userController.createUser
);
router.put('/:id',
authenticate,
validateRequest(userValidation.updateUser),
userController.updateUser
);
router.patch('/:id',
authenticate,
validateRequest(userValidation.patchUser),
userController.patchUser
);
router.delete('/:id',
authenticate,
authorize(['admin']),
validateRequest(userValidation.deleteUser),
userController.deleteUser
);
// Nested resource endpoints
router.get('/:id/orders',
authenticate,
validateRequest(userValidation.getUserOrders),
userController.getUserOrders
);
router.get('/:id/profile',
authenticate,
validateRequest(userValidation.getUserProfile),
userController.getUserProfile
);
module.exports = router;3. **Request/Response Data Models**
**Data Validation with Joi:**
// validations/userValidation.js
const Joi = require('joi');
const userSchema = {
create: Joi.object({
email: Joi.string().email().required(),
password: Joi.string().min(8).pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/).required(),
firstName: Joi.string().trim().min(1).max(100).required(),
lastName: Joi.string().trim().min(1).max(100).required(),
phone: Joi.string().pattern(/^\+?[\d\s\-\(\)]{10,20}$/).optional(),
dateOfBirth: Joi.date().max('now').optional(),
role: Joi.string().valid('user', 'admin', 'manager').default('user')
}),
update: Joi.object({
email: Joi.string().email().optional(),
firstName: Joi.string().trim().min(1).max(100).optional(),
lastName: Joi.string().trim().min(1).max(100).optional(),
phone: Joi.string().pattern(/^\+?[\d\s\-\(\)]{10,20}$/).optional(),
dateOfBirth: Joi.date().max('now').optional(),
status: Joi.string().valid('active', 'inactive', 'suspended').optional()
}),
list: Joi.object({
page: Joi.number().integer().min(1).default(1),
limit: Joi.number().integer().min(1).max(100).default(20),
sort: Joi.string().valid('id', 'email', 'firstName', 'lastName', 'createdAt').default('id'),
order: Joi.string().valid('asc', 'desc').default('asc'),
search: Joi.string().trim().min(1).optional(),
status: Joi.string().valid('active', 'inactive', 'suspended').optional(),
role: Joi.string().valid('user', 'admin', 'manager').optional()
}),
params: Joi.object({
id: Joi.number().integer().positive().required()
})
};
const validateRequest = (schema) => {
return (req, res, next) => {
const validationTargets = {
body: req.body,
query: req.query,
params: req.params
};
const errors = {};
// Validate each part of the request
Object.keys(schema).forEach(target => {
const { error, value } = schema[target].validate(validationTargets[target], {
abortEarly: false,
allowUnknown: false,
stripUnknown: true
});
if (error) {
errors[target] = error.details.map(detail => ({
field: detail.path.join('.'),
message: detail.message,
value: detail.context.value
}));
} else {
req[target] = value;
}
});
if (Object.keys(errors).length > 0) {
return res.status(400).json({
error: 'Validation failed',
details: errors,
timestamp: new Date().toISOString()
});
}
next();
};
};
module.exports = {
listUsers: validateRequest({ query: userSchema.list }),
getUser: validateRequest({ params: userSchema.params }),
createUser: validateRequest({ body: userSchema.create }),
updateUser: validateRequest({
params: userSchema.params,
body: userSchema.update
}),
patchUser: validateRequest({
params: userSchema.params,
body: userSchema.update
}),
deleteUser: validateRequest({ params: userSchema.params }),A comprehensive development toolkit designed following Anthropic's Claude Code Best Practices for AI-assisted software development.
Repo: qdhenry/Claude-Command-Suite
Execute automatic BBCR (Collapse-Rebirth Correction) when knowledge boundaries are exceeded or reasoning fails.
Analyze semantic position relative to knowledge boundaries to prevent hallucination and identify uncertainty zones.
Generate a visual heatmap of knowledge boundaries showing safe zones, risk areas, and semantic coverage.
Evaluate the current risk level and provide detailed analysis of potential hallucination or reasoning failure.
Find and construct semantic bridges to safely navigate from current position to target concept without crossing dangerous boundaries.
Takes an input prompt and returns ONLY a token-optimized version that preserves meaning while minimizing token count. Based on LLM tokenization principles:…