UNPKG

pm-orchestrator-enhancement

Version:

PM Orchestrator Enhancement - Multi-agent parallel execution system

141 lines (114 loc) 4.4 kB
/** * PM Orchestrator Enhancement - Subagent Usage Example * * 各専門サブエージェントの使用例 */ import { RuleChecker } from '../src/subagents/rule-checker'; import { CodeAnalyzer } from '../src/subagents/code-analyzer'; import { Designer } from '../src/subagents/designer'; import { Implementer } from '../src/subagents/implementer'; import { Tester } from '../src/subagents/tester'; import { QA } from '../src/subagents/qa'; async function main() { console.log('Subagent Usage Examples\n'); console.log('='.repeat(60) + '\n'); // 例1: Rule Checker console.log('Example 1: Rule Checker\n'); const ruleChecker = new RuleChecker(); const ruleResult = await ruleChecker.check( 'implementation', ['src/auth/login.ts', 'src/auth/register.ts'], 'git' ); console.log('Rule Check Result:'); console.log(` Status: ${ruleResult.status}`); console.log(` Violations: ${ruleResult.violations.length}`); if (ruleResult.violations.length > 0) { ruleResult.violations.forEach(v => { console.log(` - ${v.rule}: ${v.message} (${v.severity})`); }); } console.log(''); console.log('='.repeat(60) + '\n'); // 例2: Code Analyzer console.log('Example 2: Code Analyzer\n'); const codeAnalyzer = new CodeAnalyzer(); const analysisResult = await codeAnalyzer.analyze( ['src/auth/login.ts', 'src/auth/register.ts'], 'quality' ); console.log('Code Analysis Result:'); console.log(` Status: ${analysisResult.status}`); console.log(` Findings: ${analysisResult.findings.length}`); console.log(` Quality Score: ${analysisResult.metrics.qualityScore}`); console.log(` Complexity: ${analysisResult.metrics.complexity}`); console.log(''); console.log('='.repeat(60) + '\n'); // 例3: Designer console.log('Example 3: Designer\n'); const designer = new Designer(); const designResult = await designer.design( 'User authentication system with JWT tokens', ['Must use TypeScript', 'Must follow SOLID principles', 'Must include unit tests'] ); console.log('Design Result:'); console.log(` Status: ${designResult.status}`); console.log(` Architecture: ${designResult.architecture.pattern}`); console.log(` Layers: ${designResult.architecture.layers.length}`); console.log(` Components: ${designResult.components.length}`); console.log(` Data Models: ${designResult.dataModels.length}`); console.log(''); console.log('='.repeat(60) + '\n'); // 例4: Implementer console.log('Example 4: Implementer\n'); const implementer = new Implementer(); const implementResult = await implementer.implement( 'Create authentication module', [ { path: 'src/auth/index.ts', operation: 'create', content: 'export * from "./login";\nexport * from "./register";' } ], true ); console.log('Implementation Result:'); console.log(` Status: ${implementResult.status}`); console.log(` Files Created: ${implementResult.filesCreated.length}`); console.log(` Files Modified: ${implementResult.filesModified.length}`); console.log(` Lines Added: ${implementResult.linesAdded}`); console.log(''); console.log('='.repeat(60) + '\n'); // 例5: Tester console.log('Example 5: Tester\n'); const tester = new Tester(); const testResult = await tester.createTests( ['src/auth/login.ts'], 'unit', 80 ); console.log('Test Creation Result:'); console.log(` Status: ${testResult.status}`); console.log(` Tests Created: ${testResult.testsCreated}`); console.log(` Coverage: ${testResult.coverage}%`); console.log(` Test Files: ${testResult.testFiles.length}`); console.log(''); console.log('='.repeat(60) + '\n'); // 例6: QA console.log('Example 6: QA\n'); const qa = new QA(); const qaResult = await qa.check( ['src/auth/login.ts'], ['lint', 'test', 'typecheck', 'build'] ); console.log('QA Check Result:'); console.log(` Status: ${qaResult.status}`); console.log(` Quality Score: ${qaResult.qualityScore}`); console.log(` Lint: ${qaResult.lint.passed ? '✓' : '✗'}`); console.log(` Test: ${qaResult.test.passed ? '✓' : '✗'} (${qaResult.test.coverage}% coverage)`); console.log(` Typecheck: ${qaResult.typecheck.passed ? '✓' : '✗'}`); console.log(` Build: ${qaResult.build.passed ? '✓' : '✗'}`); console.log(''); } main();