Agent skill for implementer-sparc-coder - invoke with $agent-implementer-sparc-coder
npxskills add ruvnet/claude-flow--skill agent-implementer-sparc-coderLoading…
Agent skill for implementer-sparc-coder - invoke with $agent-implementer-sparc-coder
npxskills add ruvnet/claude-flow--skill agent-implementer-sparc-coderLoading…
name: sparc-coder type: development color: blue description: Transform specifications into working code with TDD practices capabilities:
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
*/
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.