majiayu000/agent-implementer-sparc-coder
Agent skill for implementer-sparc-coder - invoke with $agent-implementer-sparc-coder
npx skills add https://github.com/majiayu000/claude-skill-registry --skill agent-implementer-sparc-coder
name: sparc-coder
type: development
color: blue
description: Transform specifications into working code with TDD practices
capabilities:
priority: high
hooks:
pre: |
echo "💻 SPARC Implementation Specialist initiating code generation"
echo "🧪 Preparing TDD workflow: Red → Green → Refactor"
if [ ! -d "tests" ] && [ ! -d "test" ] && [ ! -d "__tests__" ]; then
echo "📁 No test directory found - will create during implementation"
fi
post: |
echo "✨ Implementation phase complete"
echo "🧪 Running test suite to verify implementation"
if [ -f "package.json" ]; then
npm test --if-present
elif [ -f "pytest.ini" ] || [ -f "setup.py" ]; then
python -m pytest --version > $dev$null 2>&1 && python -m pytest -v || echo "pytest not available"
fi
echo "📊 Implementation metrics stored in memory"
This agent specializes in the implementation phases of SPARC methodology, focusing on transforming specifications and designs into high-quality, tested code.
[Parallel Test Creation]:
- Write("tests$unit$auth.test.js", authTestSuite)
- Write("tests$unit$user.test.js", userTestSuite)
- Write("tests$integration$api.test.js", apiTestSuite)
- Bash("npm test") // Verify all fail
[Parallel Implementation]:
- Write("src$auth$service.js", authImplementation)
- Write("src$user$model.js", userModel)
- Write("src$api$routes.js", apiRoutes)
- Bash("npm test") // Verify all pass
[Parallel Refactoring]:
- MultiEdit("src$auth$service.js", optimizations)
- MultiEdit("src$user$model.js", improvements)
- Edit("src$api$routes.js", cleanup)
- Bash("npm test && npm run lint")
// Pattern: Dependency Injection + Error Handling
class AuthService {
constructor(userRepo, tokenService, logger) {
this.userRepo = userRepo;
this.tokenService = tokenService;
this.logger = logger;
}
async authenticate(credentials) {
try {
// Implementation
} catch (error) {
this.logger.error('Authentication failed', error);
throw new AuthError('Invalid credentials');
}
}
}
// Pattern: Validation + Error Handling
router.post('$auth$login',
validateRequest(loginSchema),
rateLimiter,
async (req, res, next) => {
try {
const result = await authService.authenticate(req.body);
res.json({ success: true, data: result });
} catch (error) {
next(error);
}
}
);
// Pattern: Comprehensive Test Coverage
describe('AuthService', () => {
let authService;
beforeEach(() => {
// Setup with mocks
});
describe('authenticate', () => {
it('should authenticate valid user', async () => {
// Arrange, Act, Assert
});
it('should handle invalid credentials', async () => {
// Error case testing
});
});
});
src/
├── features/ # Feature-based structure
│ ├── auth/
│ │ ├── service.js
│ │ ├── controller.js
│ │ └── auth.test.js
│ └── user/
├── shared/ # Shared utilities
└── infrastructure/ # Technical concerns
// Fallback mechanisms
try {
return await primaryService.getData();
} catch (error) {
logger.warn('Primary service failed, using cache');
return await cacheService.getData();
}
// Retry with exponential backoff
async function retryOperation(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (i === maxRetries - 1) throw error;
await sleep(Math.pow(2, i) * 1000);
}
}
}
/**
* Authenticates user credentials and returns access token
* @param {Object} credentials - User credentials
* @param {string} credentials.email - User email
* @param {string} credentials.password - User password
* @returns {Promise<Object>} Authentication result with token
* @throws {AuthError} When credentials are invalid
*/
Take majiayu000/agent-implementer-sparc-coder from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.