timsquad 3.4.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +4 -0
- package/README.md +4 -0
- package/dist/commands/audit.d.ts +22 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +233 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +84 -3
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +50 -3
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/full.js +1 -0
- package/dist/commands/full.js.map +1 -1
- package/dist/commands/git/pr.js +6 -5
- package/dist/commands/git/pr.js.map +1 -1
- package/dist/commands/git/release.js +2 -7
- package/dist/commands/git/release.js.map +1 -1
- package/dist/commands/improve.js +2 -2
- package/dist/commands/improve.js.map +1 -1
- package/dist/commands/init.js +42 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +34 -2
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/meta-index.d.ts.map +1 -1
- package/dist/commands/meta-index.js +30 -0
- package/dist/commands/meta-index.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +6 -2
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/retro.d.ts.map +1 -1
- package/dist/commands/retro.js +71 -14
- package/dist/commands/retro.js.map +1 -1
- package/dist/commands/session.js +3 -3
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/skills.js +4 -7
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +18 -1
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/workflow.d.ts +2 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +180 -6
- package/dist/commands/workflow.js.map +1 -1
- package/dist/daemon/context-writer.d.ts +14 -0
- package/dist/daemon/context-writer.d.ts.map +1 -1
- package/dist/daemon/context-writer.js +29 -0
- package/dist/daemon/context-writer.js.map +1 -1
- package/dist/daemon/event-queue.d.ts +4 -0
- package/dist/daemon/event-queue.d.ts.map +1 -1
- package/dist/daemon/event-queue.js +107 -6
- package/dist/daemon/event-queue.js.map +1 -1
- package/dist/daemon/file-watcher.d.ts +14 -8
- package/dist/daemon/file-watcher.d.ts.map +1 -1
- package/dist/daemon/file-watcher.js +78 -41
- package/dist/daemon/file-watcher.js.map +1 -1
- package/dist/daemon/index.d.ts +1 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +129 -53
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/jsonl-watcher.d.ts +1 -0
- package/dist/daemon/jsonl-watcher.d.ts.map +1 -1
- package/dist/daemon/jsonl-watcher.js.map +1 -1
- package/dist/daemon/session-notes.d.ts +33 -0
- package/dist/daemon/session-notes.d.ts.map +1 -0
- package/dist/daemon/session-notes.js +74 -0
- package/dist/daemon/session-notes.js.map +1 -0
- package/dist/daemon/session-state.d.ts +8 -0
- package/dist/daemon/session-state.d.ts.map +1 -1
- package/dist/daemon/session-state.js +33 -0
- package/dist/daemon/session-state.js.map +1 -1
- package/dist/daemon/shutdown.d.ts.map +1 -1
- package/dist/daemon/shutdown.js +3 -1
- package/dist/daemon/shutdown.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-generator.d.ts +4 -0
- package/dist/lib/agent-generator.d.ts.map +1 -1
- package/dist/lib/agent-generator.js +63 -3
- package/dist/lib/agent-generator.js.map +1 -1
- package/dist/lib/compile-rules.d.ts +2 -0
- package/dist/lib/compile-rules.d.ts.map +1 -1
- package/dist/lib/compile-rules.js +2 -0
- package/dist/lib/compile-rules.js.map +1 -1
- package/dist/lib/compiler.d.ts +21 -1
- package/dist/lib/compiler.d.ts.map +1 -1
- package/dist/lib/compiler.js +113 -3
- package/dist/lib/compiler.js.map +1 -1
- package/dist/lib/config.d.ts +3 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +17 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/project.d.ts.map +1 -1
- package/dist/lib/project.js +8 -3
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/skill-generator.d.ts +1 -1
- package/dist/lib/skill-generator.d.ts.map +1 -1
- package/dist/lib/skill-generator.js +39 -3
- package/dist/lib/skill-generator.js.map +1 -1
- package/dist/lib/ssot-map.d.ts +31 -0
- package/dist/lib/ssot-map.d.ts.map +1 -0
- package/dist/lib/ssot-map.js +76 -0
- package/dist/lib/ssot-map.js.map +1 -0
- package/dist/lib/template.js +1 -0
- package/dist/lib/template.js.map +1 -1
- package/dist/lib/workflow-state.d.ts +1 -1
- package/dist/lib/workflow-state.d.ts.map +1 -1
- package/dist/lib/workflow-state.js +1 -1
- package/dist/lib/workflow-state.js.map +1 -1
- package/dist/types/config.d.ts +10 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +22 -17
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/meta-index.d.ts +8 -0
- package/dist/types/meta-index.d.ts.map +1 -1
- package/dist/types/project.d.ts +1 -1
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js.map +1 -1
- package/dist/types/ssot-map.d.ts +28 -0
- package/dist/types/ssot-map.d.ts.map +1 -0
- package/dist/types/ssot-map.js +6 -0
- package/dist/types/ssot-map.js.map +1 -0
- package/package.json +4 -4
- package/templates/base/agents/base/tsq-architect.md +2 -2
- package/templates/base/agents/base/tsq-librarian.md +45 -0
- package/templates/base/knowledge/checklists/plan-quality.md +31 -0
- package/templates/base/knowledge/checklists/stability-verification.md +14 -0
- package/templates/base/skills/_shared/naming-conventions.md +49 -0
- package/templates/base/skills/_template/SKILL.md +33 -17
- package/templates/base/skills/audit/SKILL.md +66 -0
- package/templates/base/skills/coding/SKILL.md +49 -29
- package/templates/base/skills/coding/rules/async-patterns.md +81 -0
- package/templates/base/skills/coding/rules/code-organization.md +80 -0
- package/templates/base/skills/coding/rules/error-handling.md +76 -0
- package/templates/base/skills/coding/rules/type-safety.md +85 -0
- package/templates/base/skills/controller/SKILL.md +50 -84
- package/templates/base/skills/controller/delegation/developer.md +25 -0
- package/templates/base/skills/controller/delegation/librarian.md +33 -0
- package/templates/base/skills/controller/delegation/reviewer.md +19 -0
- package/templates/base/skills/controller/memory/.gitkeep +0 -0
- package/templates/base/skills/controller/triggers/phase-complete.md +25 -0
- package/templates/base/skills/controller/triggers/sequence-complete.md +15 -0
- package/templates/base/skills/controller/triggers/ssot-changed.md +14 -0
- package/templates/base/skills/controller/triggers/task-complete.md +14 -0
- package/templates/base/skills/database/SKILL.md +8 -25
- package/templates/base/skills/database/rules/query-optimization.md +32 -0
- package/templates/base/skills/database/rules/supabase-patterns.md +94 -0
- package/templates/base/skills/librarian/SKILL.md +53 -0
- package/templates/base/skills/main-session-constraints/SKILL.md +62 -0
- package/templates/base/skills/methodology/tdd/SKILL.md +6 -0
- package/templates/base/skills/product-audit/SKILL.md +115 -0
- package/templates/base/skills/product-audit/checklists/01-security.md +86 -0
- package/templates/base/skills/product-audit/checklists/02-performance.md +67 -0
- package/templates/base/skills/product-audit/checklists/03-seo.md +46 -0
- package/templates/base/skills/product-audit/checklists/04-accessibility.md +66 -0
- package/templates/base/skills/product-audit/checklists/05-ui-ux.md +50 -0
- package/templates/base/skills/product-audit/checklists/06-architecture.md +53 -0
- package/templates/base/skills/product-audit/checklists/07-functional-requirements.md +55 -0
- package/templates/base/skills/product-audit/rules/audit-protocol.md +136 -0
- package/templates/base/skills/product-audit/rules/false-positive-guard.md +81 -0
- package/templates/base/skills/product-audit/rules/scoring-criteria.md +113 -0
- package/templates/base/skills/product-audit/templates/improvement-plan-template.md +60 -0
- package/templates/base/skills/product-audit/templates/report-template.md +88 -0
- package/templates/base/skills/prompt-engineering/SKILL.md +54 -73
- package/templates/base/skills/retrospective/SKILL.md +70 -95
- package/templates/base/skills/retrospective/references/improvement-template.md +26 -0
- package/templates/base/skills/review/SKILL.md +72 -0
- package/templates/base/skills/security/SKILL.md +50 -37
- package/templates/base/skills/security/rules/auth-patterns.md +62 -0
- package/templates/base/skills/security/rules/dependency-security.md +69 -0
- package/templates/base/skills/security/rules/input-validation.md +68 -0
- package/templates/base/skills/security/rules/secrets-management.md +65 -0
- package/templates/base/skills/spec/SKILL.md +60 -0
- package/templates/base/skills/stability-verification/SKILL.md +64 -0
- package/templates/base/skills/stability-verification/references/release-checklist.md +34 -0
- package/templates/base/skills/stability-verification/references/security-fix-patterns.md +112 -0
- package/templates/base/skills/stability-verification/rules/verification-layers.md +67 -0
- package/templates/base/skills/stability-verification/rules/verification-workflow.md +69 -0
- package/templates/base/skills/stability-verification/scripts/verify.sh +294 -0
- package/templates/base/skills/testing/SKILL.md +33 -25
- package/templates/base/skills/testing/references/e2e-stability.md +33 -0
- package/templates/base/skills/tsq-cli/SKILL.md +73 -0
- package/templates/base/skills/tsq-cli/references/cli-reference.md +92 -0
- package/templates/base/skills/tsq-protocol/SKILL.md +41 -25
- package/templates/base/skills/typescript/SKILL.md +3 -9
- package/templates/base/timsquad/ssot/test-spec.template.md +11 -1
- package/templates/base/timsquad/ssot-map.template.yaml +41 -0
- package/templates/platforms/claude-code/rules/api-conventions.md +12 -0
- package/templates/platforms/claude-code/rules/build-gate.md +28 -0
- package/templates/platforms/claude-code/rules/completion-verification.md +30 -0
- package/templates/platforms/claude-code/rules/context-monitor.md +23 -0
- package/templates/platforms/claude-code/rules/librarian-constraints.md +11 -0
- package/templates/platforms/claude-code/rules/plan-review.md +45 -0
- package/templates/platforms/claude-code/rules/quality-guards.md +43 -0
- package/templates/platforms/claude-code/rules/session-notes.md +18 -0
- package/templates/platforms/claude-code/rules/skill-suggest.md +27 -0
- package/templates/platforms/claude-code/rules/test-conventions.md +13 -0
- package/templates/platforms/claude-code/scripts/build-gate.sh +73 -0
- package/templates/platforms/claude-code/scripts/change-scope-guard.sh +113 -0
- package/templates/platforms/claude-code/scripts/completion-guard.sh +122 -24
- package/templates/platforms/claude-code/scripts/context-restore.sh +68 -0
- package/templates/platforms/claude-code/scripts/e2e-commit-gate.sh +70 -0
- package/templates/platforms/claude-code/scripts/e2e-marker.sh +51 -0
- package/templates/platforms/claude-code/scripts/phase-guard.sh +5 -5
- package/templates/platforms/claude-code/scripts/pre-compact.sh +70 -0
- package/templates/platforms/claude-code/scripts/safe-guard.sh +83 -0
- package/templates/platforms/claude-code/scripts/skill-inject.sh +216 -0
- package/templates/platforms/claude-code/scripts/skill-rules.json +95 -0
- package/templates/platforms/claude-code/scripts/skill-suggest.sh +105 -0
- package/templates/platforms/claude-code/scripts/subagent-inject.sh +53 -0
- package/templates/platforms/claude-code/settings.json +71 -9
|
@@ -42,6 +42,10 @@ export async function updateSessionState(projectRoot, event) {
|
|
|
42
42
|
bashCommands: 0, tsqCommands: 0,
|
|
43
43
|
},
|
|
44
44
|
startedAt: getTimestamp(),
|
|
45
|
+
turnCount: 0,
|
|
46
|
+
lastTurnInput: 0,
|
|
47
|
+
recentFiles: [],
|
|
48
|
+
recentTools: [],
|
|
45
49
|
};
|
|
46
50
|
}
|
|
47
51
|
// 이벤트 타입별 메트릭 갱신
|
|
@@ -57,6 +61,16 @@ export async function updateSessionState(projectRoot, event) {
|
|
|
57
61
|
state.metrics.tsqCommands++;
|
|
58
62
|
}
|
|
59
63
|
}
|
|
64
|
+
// 최근 도구/파일 추적 (session-notes 스냅샷용)
|
|
65
|
+
if (!state.recentTools.includes(tool)) {
|
|
66
|
+
state.recentTools.push(tool);
|
|
67
|
+
}
|
|
68
|
+
if ((tool === 'Write' || tool === 'Edit') && event.detail) {
|
|
69
|
+
const filePath = String(event.detail.file_path || '');
|
|
70
|
+
if (filePath && !state.recentFiles.includes(filePath)) {
|
|
71
|
+
state.recentFiles.push(filePath);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
60
74
|
break;
|
|
61
75
|
}
|
|
62
76
|
case 'PostToolUseFailure':
|
|
@@ -66,12 +80,19 @@ export async function updateSessionState(projectRoot, event) {
|
|
|
66
80
|
state.metrics.subagentCount++;
|
|
67
81
|
break;
|
|
68
82
|
case 'Stop': {
|
|
83
|
+
state.turnCount++;
|
|
69
84
|
const usage = event.usage;
|
|
70
85
|
if (usage) {
|
|
71
86
|
state.metrics.tokenInput += usage.input_tokens || usage.input || 0;
|
|
72
87
|
state.metrics.tokenOutput += usage.output_tokens || usage.output || 0;
|
|
73
88
|
state.metrics.tokenCacheCreate += usage.cache_creation_input_tokens || usage.cache_create || 0;
|
|
74
89
|
state.metrics.tokenCacheRead += usage.cache_read_input_tokens || usage.cache_read || 0;
|
|
90
|
+
state.metrics.tokenDataReceived = true;
|
|
91
|
+
// 최신 턴의 input 토큰 = 현재 컨텍스트 윈도우 사용량 근사치
|
|
92
|
+
const turnInput = (usage.input_tokens || usage.input || 0)
|
|
93
|
+
+ (usage.cache_creation_input_tokens || usage.cache_create || 0)
|
|
94
|
+
+ (usage.cache_read_input_tokens || usage.cache_read || 0);
|
|
95
|
+
state.lastTurnInput = turnInput;
|
|
75
96
|
}
|
|
76
97
|
break;
|
|
77
98
|
}
|
|
@@ -94,6 +115,18 @@ function appendSessionLog(logPath, entry) {
|
|
|
94
115
|
}
|
|
95
116
|
catch { /* ignore */ }
|
|
96
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* 스냅샷 기록 후 recentFiles/recentTools 초기화
|
|
120
|
+
*/
|
|
121
|
+
export async function resetRecentTracking(projectRoot) {
|
|
122
|
+
const state = await loadSessionState(projectRoot);
|
|
123
|
+
if (!state)
|
|
124
|
+
return;
|
|
125
|
+
state.recentFiles = [];
|
|
126
|
+
state.recentTools = [];
|
|
127
|
+
const filePath = path.join(projectRoot, STATE_DIR, SESSION_STATE_FILE);
|
|
128
|
+
await fs.writeJson(filePath, state, { spaces: 2 });
|
|
129
|
+
}
|
|
97
130
|
// ── Baselines (파일 기반) ──
|
|
98
131
|
export async function saveBaseline(projectRoot, agent) {
|
|
99
132
|
const dir = path.join(projectRoot, STATE_DIR, BASELINES_DIR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/daemon/session-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,SAAS,GAAG,mBAAmB,CAAC;AACtC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,aAAa,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/daemon/session-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,SAAS,GAAG,mBAAmB,CAAC;AACtC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,aAAa,GAAG,WAAW,CAAC;AAclC,sBAAsB;AAEtB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,KAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAEzD,IAAI,KAAK,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC;IAEpF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5E,KAAK,GAAG;YACN,YAAY;YACZ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;YAC/C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,IAAI,YAAY,QAAQ,CAAC;YACxE,OAAO,EAAE;gBACP,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC;gBAC9C,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;gBAC7B,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;gBACtC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;aAChC;YACD,SAAS,EAAE,YAAY,EAAE;YACzB,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACtC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAE,KAAK,CAAC,MAAkC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC7E,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxD,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,MAAM,CAAE,KAAK,CAAC,MAAkC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBACnF,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,oBAAoB;YACvB,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM;QACR,KAAK,eAAe;YAClB,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM;QACR,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,KAA2C,CAAC;YAChE,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBACnE,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBACtE,KAAK,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;gBAC/F,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;gBACvF,KAAK,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBACvC,uCAAuC;gBACvC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;sBACtD,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;sBAC9D,CAAC,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;gBAC7D,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;YAClC,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,gBAAgB,CAAC,KAAK,CAAC,cAAc,EAAE;QACrC,SAAS,EAAE,YAAY,EAAE;QACzB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,YAAY;QACrB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAA8B;IACvE,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,0BAA0B;AAE1B,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,KAAa;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAExB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAqB;QACjC,KAAK;QACL,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;KACzC,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,KAAa;IAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,KAAa;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACnF,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/daemon/shutdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;GAGG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/daemon/shutdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;GAGG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3E"}
|
package/dist/daemon/shutdown.js
CHANGED
|
@@ -132,6 +132,7 @@ export async function updateMetrics(projectRoot, metrics, sessionShort) {
|
|
|
132
132
|
totalCacheCreate: metrics.tokenCacheCreate,
|
|
133
133
|
totalCacheRead: metrics.tokenCacheRead,
|
|
134
134
|
cacheHitRate: 0,
|
|
135
|
+
available: metrics.tokenDataReceived === true,
|
|
135
136
|
},
|
|
136
137
|
cliAdoption: {
|
|
137
138
|
totalBashCommands: newBash,
|
|
@@ -149,8 +150,9 @@ export async function cleanupDaemonFiles(projectRoot) {
|
|
|
149
150
|
const sockFile = path.join(projectRoot, '.timsquad', '.daemon.sock');
|
|
150
151
|
const contextFile = path.join(projectRoot, '.timsquad', '.daemon', 'task-context.json');
|
|
151
152
|
const sessionStateFile = path.join(projectRoot, '.timsquad', '.daemon', 'session-state.json');
|
|
153
|
+
const sessionNotesFile = path.join(projectRoot, '.timsquad', '.daemon', 'session-notes.jsonl');
|
|
152
154
|
const baselinesDir = path.join(projectRoot, '.timsquad', '.daemon', 'baselines');
|
|
153
|
-
for (const f of [pidFile, sockFile, contextFile, sessionStateFile]) {
|
|
155
|
+
for (const f of [pidFile, sockFile, contextFile, sessionStateFile, sessionNotesFile]) {
|
|
154
156
|
try {
|
|
155
157
|
await fs.remove(f);
|
|
156
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/daemon/shutdown.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/daemon/shutdown.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ import { registerDaemonCommand } from './commands/daemon.js';
|
|
|
23
23
|
import { registerSkillsCommand } from './commands/skills.js';
|
|
24
24
|
import { registerUpgradeCommand } from './commands/upgrade.js';
|
|
25
25
|
import { registerCompileCommand } from './commands/compile.js';
|
|
26
|
+
import { registerAuditCommand } from './commands/audit.js';
|
|
26
27
|
import { checkForUpdates } from './lib/update-check.js';
|
|
27
28
|
import { getInstalledVersion } from './lib/version.js';
|
|
28
29
|
const program = new Command();
|
|
@@ -54,6 +55,7 @@ registerDaemonCommand(program);
|
|
|
54
55
|
registerSkillsCommand(program);
|
|
55
56
|
registerCompileCommand(program);
|
|
56
57
|
registerUpgradeCommand(program);
|
|
58
|
+
registerAuditCommand(program);
|
|
57
59
|
// Default action (show help)
|
|
58
60
|
program.action(() => {
|
|
59
61
|
console.log(chalk.cyan.bold(`\n TimSquad v${VERSION}`));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;AAEtC,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,wBAAwB;AACxB,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { AgentType } from '../types/index.js';
|
|
2
2
|
import type { TimsquadConfig } from '../types/config.js';
|
|
3
3
|
import type { TemplateVariables } from './template.js';
|
|
4
|
+
/**
|
|
5
|
+
* Inject active stack skills into agent YAML frontmatter
|
|
6
|
+
*/
|
|
7
|
+
export declare function injectSkillsIntoFrontmatter(content: string, agent: AgentType, activeSkills: string[]): string;
|
|
4
8
|
/**
|
|
5
9
|
* Get active agents from config
|
|
6
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-generator.d.ts","sourceRoot":"","sources":["../../src/lib/agent-generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-generator.d.ts","sourceRoot":"","sources":["../../src/lib/agent-generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA+BvD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,CAqCR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,CASnE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,SAAS,EAAE,EACzB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAgDf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAkFzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAExE"}
|
|
@@ -3,6 +3,7 @@ import fs from 'fs-extra';
|
|
|
3
3
|
import { AGENT_PRESETS } from '../types/config.js';
|
|
4
4
|
import { substituteVariables } from './template.js';
|
|
5
5
|
import { composeAgent } from './agent-composer.js';
|
|
6
|
+
import { getActiveSkills } from './skill-generator.js';
|
|
6
7
|
/**
|
|
7
8
|
* Agent file name mapping
|
|
8
9
|
*/
|
|
@@ -13,7 +14,53 @@ const AGENT_FILE_MAP = {
|
|
|
13
14
|
security: 'tsq-security.md',
|
|
14
15
|
dba: 'tsq-dba.md',
|
|
15
16
|
designer: 'tsq-designer.md',
|
|
17
|
+
librarian: 'tsq-librarian.md',
|
|
16
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Stack skill categories each agent role should receive
|
|
21
|
+
*/
|
|
22
|
+
const AGENT_SKILL_CATEGORIES = {
|
|
23
|
+
developer: ['frontend', 'backend', 'database', 'mobile'],
|
|
24
|
+
designer: ['frontend'],
|
|
25
|
+
dba: ['database'],
|
|
26
|
+
architect: [],
|
|
27
|
+
qa: [],
|
|
28
|
+
security: [],
|
|
29
|
+
librarian: [],
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Inject active stack skills into agent YAML frontmatter
|
|
33
|
+
*/
|
|
34
|
+
export function injectSkillsIntoFrontmatter(content, agent, activeSkills) {
|
|
35
|
+
const categories = AGENT_SKILL_CATEGORIES[agent] || [];
|
|
36
|
+
if (categories.length === 0)
|
|
37
|
+
return content;
|
|
38
|
+
// Filter active skills matching this agent's categories
|
|
39
|
+
const agentSkills = activeSkills.filter(skill => {
|
|
40
|
+
const category = skill.split('/')[0];
|
|
41
|
+
return categories.includes(category);
|
|
42
|
+
});
|
|
43
|
+
if (agentSkills.length === 0)
|
|
44
|
+
return content;
|
|
45
|
+
// Parse YAML frontmatter
|
|
46
|
+
const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
47
|
+
if (!fmMatch)
|
|
48
|
+
return content;
|
|
49
|
+
const frontmatter = fmMatch[1];
|
|
50
|
+
// Extract existing skills
|
|
51
|
+
const skillsMatch = frontmatter.match(/^skills:\s*\[([^\]]*)\]/m);
|
|
52
|
+
if (!skillsMatch)
|
|
53
|
+
return content;
|
|
54
|
+
const existingSkills = skillsMatch[1]
|
|
55
|
+
.split(',')
|
|
56
|
+
.map(s => s.trim())
|
|
57
|
+
.filter(Boolean);
|
|
58
|
+
// Merge and deduplicate
|
|
59
|
+
const mergedSkills = [...new Set([...existingSkills, ...agentSkills])];
|
|
60
|
+
// Replace skills line in frontmatter
|
|
61
|
+
const newFm = frontmatter.replace(/^skills:\s*\[([^\]]*)\]/m, `skills: [${mergedSkills.join(', ')}]`);
|
|
62
|
+
return content.replace(/^---\n[\s\S]*?\n---/, `---\n${newFm}\n---`);
|
|
63
|
+
}
|
|
17
64
|
/**
|
|
18
65
|
* Get active agents from config
|
|
19
66
|
*/
|
|
@@ -36,6 +83,7 @@ export async function generateAgentFiles(templatesDir, destAgentsDir, activeAgen
|
|
|
36
83
|
const srcAgentsDir = path.join(templatesDir, 'base', 'agents');
|
|
37
84
|
const baseDir = path.join(srcAgentsDir, 'base');
|
|
38
85
|
const useComposition = await fs.pathExists(baseDir);
|
|
86
|
+
const activeSkills = config ? getActiveSkills(config) : [];
|
|
39
87
|
// 1. 활성 에이전트 배포
|
|
40
88
|
for (const agent of activeAgents) {
|
|
41
89
|
const fileName = AGENT_FILE_MAP[agent];
|
|
@@ -58,9 +106,12 @@ export async function generateAgentFiles(templatesDir, destAgentsDir, activeAgen
|
|
|
58
106
|
content = await fs.readFile(srcPath, 'utf-8');
|
|
59
107
|
}
|
|
60
108
|
const processed = substituteVariables(content, variables);
|
|
109
|
+
const withSkills = activeSkills.length > 0
|
|
110
|
+
? injectSkillsIntoFrontmatter(processed, agent, activeSkills)
|
|
111
|
+
: processed;
|
|
61
112
|
const destPath = path.join(destAgentsDir, fileName);
|
|
62
113
|
await fs.ensureDir(path.dirname(destPath));
|
|
63
|
-
await fs.writeFile(destPath,
|
|
114
|
+
await fs.writeFile(destPath, withSkills, 'utf-8');
|
|
64
115
|
}
|
|
65
116
|
// 2. 비활성 에이전트 파일이 있으면 제거
|
|
66
117
|
if (await fs.pathExists(destAgentsDir)) {
|
|
@@ -82,9 +133,9 @@ export function generateDelegationRules(activeAgents) {
|
|
|
82
133
|
// Architect rule (시퀀스 분석)
|
|
83
134
|
if (activeAgents.includes('architect')) {
|
|
84
135
|
rules.push(` <rule id="DEL-${String(ruleId).padStart(3, '0')}">
|
|
85
|
-
<trigger>시퀀스 분석, 아키텍처 리뷰, 태스크 로그 분석, 구조
|
|
136
|
+
<trigger>시퀀스 분석, 아키텍처 리뷰, 태스크 로그 분석, 구조 검토, 계획 검증, plan review</trigger>
|
|
86
137
|
<delegate-to>@tsq-architect</delegate-to>
|
|
87
|
-
<context>시퀀스 완료 후 로그 분석 및 보고서
|
|
138
|
+
<context>시퀀스 완료 후 로그 분석 및 보고서 작성. 계획 단계에서는 3축 Plan Review 수행.</context>
|
|
88
139
|
</rule>`);
|
|
89
140
|
ruleId++;
|
|
90
141
|
}
|
|
@@ -130,6 +181,15 @@ export function generateDelegationRules(activeAgents) {
|
|
|
130
181
|
<trigger>보안 검토, 취약점 분석, 컴플라이언스</trigger>
|
|
131
182
|
<delegate-to>@tsq-security</delegate-to>
|
|
132
183
|
<precondition>Security Phase 또는 보안 관련 요청</precondition>
|
|
184
|
+
</rule>`);
|
|
185
|
+
ruleId++;
|
|
186
|
+
}
|
|
187
|
+
// Librarian rule (Phase 기록)
|
|
188
|
+
if (activeAgents.includes('librarian')) {
|
|
189
|
+
rules.push(` <rule id="DEL-${String(ruleId).padStart(3, '0')}">
|
|
190
|
+
<trigger>기록해줘, 리포트 작성, Phase 정리, 문서 갱신, SSOT 상태 점검</trigger>
|
|
191
|
+
<delegate-to>@tsq-librarian</delegate-to>
|
|
192
|
+
<precondition>Phase 완료 후 기록 단계</precondition>
|
|
133
193
|
</rule>`);
|
|
134
194
|
ruleId++;
|
|
135
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-generator.js","sourceRoot":"","sources":["../../src/lib/agent-generator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-generator.js","sourceRoot":"","sources":["../../src/lib/agent-generator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,cAAc,GAA8B;IAChD,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,EAAE,EAAE,WAAW;IACf,QAAQ,EAAE,iBAAiB;IAC3B,GAAG,EAAE,YAAY;IACjB,QAAQ,EAAE,iBAAiB;IAC3B,SAAS,EAAE,kBAAkB;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,sBAAsB,GAAgC;IAC1D,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;IACxD,QAAQ,EAAG,CAAC,UAAU,CAAC;IACvB,GAAG,EAAQ,CAAC,UAAU,CAAC;IACvB,SAAS,EAAE,EAAE;IACb,EAAE,EAAS,EAAE;IACb,QAAQ,EAAG,EAAE;IACb,SAAS,EAAE,EAAE;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,KAAgB,EAChB,YAAsB;IAEtB,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAE5C,wDAAwD;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAE7C,yBAAyB;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAE7B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,0BAA0B;IAC1B,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAClE,IAAI,CAAC,WAAW;QAAE,OAAO,OAAO,CAAC;IAEjC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC;SAClC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,wBAAwB;IACxB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEvE,qCAAqC;IACrC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAC/B,0BAA0B,EAC1B,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvC,CAAC;IAEF,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IAEjD,4CAA4C;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB,EACpB,aAAqB,EACrB,YAAyB,EACzB,SAA4B,EAC5B,MAAuB;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3D,gBAAgB;IAChB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,IAAI,OAAe,CAAC;QAEpB,IAAI,cAAc,EAAE,CAAC;YACnB,2BAA2B;YAC3B,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE;gBACzC,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,IAAI,aAAa;gBACpD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;aAChC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC5C,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,2BAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC;YAC7D,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEpD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClF,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAyB;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,0BAA0B;IAC1B,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,iBAAiB;IACjB,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,WAAW;IACX,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,UAAU;IACV,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIvD,CAAC,CAAC;QACR,MAAM,EAAE,CAAC;IACX,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;;;UAIrD,CAAC,CAAC;IAEV,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAyB;IAC9D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -23,6 +23,8 @@ export interface CompileRule {
|
|
|
23
23
|
requiredFields: string[];
|
|
24
24
|
/** Human-readable description */
|
|
25
25
|
description: string;
|
|
26
|
+
/** E2E test file glob pattern. Available vars: {section}. e.g. "__tests__/e2e/{section}.test.ts" */
|
|
27
|
+
affected_e2e?: string;
|
|
26
28
|
}
|
|
27
29
|
/** Metadata embedded in compiled spec files */
|
|
28
30
|
export interface CompileMarker {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-rules.d.ts","sourceRoot":"","sources":["../../src/lib/compile-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEjD,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;AAElD,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,gCAAgC;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,qFAAqF;IACrF,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"compile-rules.d.ts","sourceRoot":"","sources":["../../src/lib/compile-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEjD,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;AAElD,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,gCAAgC;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,qFAAqF;IACrF,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EA2EtC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAQ1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAS1D"}
|
|
@@ -17,6 +17,7 @@ export const COMPILE_RULES = [
|
|
|
17
17
|
filenamePattern: '{section}.spec.md',
|
|
18
18
|
requiredFields: ['Endpoint', 'Request', 'Response'],
|
|
19
19
|
description: 'API 엔드포인트별 분할 (H3 = 개별 API)',
|
|
20
|
+
affected_e2e: '__tests__/e2e/{section}.test.ts',
|
|
20
21
|
},
|
|
21
22
|
{
|
|
22
23
|
source: 'data-design',
|
|
@@ -57,6 +58,7 @@ export const COMPILE_RULES = [
|
|
|
57
58
|
filenamePattern: '{section}.spec.md',
|
|
58
59
|
requiredFields: [],
|
|
59
60
|
description: 'UI/UX 화면별 분할',
|
|
61
|
+
affected_e2e: '__tests__/e2e/{section}.test.ts',
|
|
60
62
|
},
|
|
61
63
|
{
|
|
62
64
|
source: 'security-spec',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-rules.js","sourceRoot":"","sources":["../../src/lib/compile-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"compile-rules.js","sourceRoot":"","sources":["../../src/lib/compile-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/compiler.d.ts
CHANGED
|
@@ -33,6 +33,12 @@ export interface ValidationResult {
|
|
|
33
33
|
}>;
|
|
34
34
|
score: number;
|
|
35
35
|
}
|
|
36
|
+
/** E2E mapping for a compiled spec */
|
|
37
|
+
export interface E2eMapping {
|
|
38
|
+
specFile: string;
|
|
39
|
+
e2eFile: string;
|
|
40
|
+
exists: boolean;
|
|
41
|
+
}
|
|
36
42
|
/** Overall compile result */
|
|
37
43
|
export interface CompileResult {
|
|
38
44
|
success: boolean;
|
|
@@ -43,6 +49,9 @@ export interface CompileResult {
|
|
|
43
49
|
validations: ValidationResult[];
|
|
44
50
|
skipped: string[];
|
|
45
51
|
errors: string[];
|
|
52
|
+
affected_e2e: E2eMapping[];
|
|
53
|
+
/** ssot-map.yaml 기반 티어별 컴파일 정보 */
|
|
54
|
+
ssotMapApplied?: boolean;
|
|
46
55
|
}
|
|
47
56
|
/**
|
|
48
57
|
* Parse a markdown document into sections by heading level.
|
|
@@ -67,9 +76,10 @@ export declare function computeHash(content: string): string;
|
|
|
67
76
|
* Compile a single SSOT document according to its rule.
|
|
68
77
|
* Returns list of output file paths (relative to controller skill dir).
|
|
69
78
|
*/
|
|
70
|
-
export declare function compileSsotDocument(ssotPath: string, rule: CompileRule, controllerDir: string, sourceName: string): Promise<{
|
|
79
|
+
export declare function compileSsotDocument(ssotPath: string, rule: CompileRule, controllerDir: string, sourceName: string, projectRoot?: string): Promise<{
|
|
71
80
|
outputFiles: string[];
|
|
72
81
|
validation: ValidationResult;
|
|
82
|
+
e2eMappings: E2eMapping[];
|
|
73
83
|
}>;
|
|
74
84
|
/**
|
|
75
85
|
* Compile all SSOT documents in a project.
|
|
@@ -102,4 +112,14 @@ export declare function validateDependencyGraph(projectRoot: string, controllerD
|
|
|
102
112
|
agent: string;
|
|
103
113
|
missing: string[];
|
|
104
114
|
}>>;
|
|
115
|
+
/**
|
|
116
|
+
* Validate skill dependency graph (7-A).
|
|
117
|
+
* Checks depends_on/conflicts_with in SKILL.md frontmatter.
|
|
118
|
+
*/
|
|
119
|
+
export interface SkillDependencyIssue {
|
|
120
|
+
skill: string;
|
|
121
|
+
type: 'missing_dependency' | 'circular' | 'conflict_active';
|
|
122
|
+
target: string;
|
|
123
|
+
}
|
|
124
|
+
export declare function validateSkillDependencies(projectRoot: string): Promise<SkillDependencyIssue[]>;
|
|
105
125
|
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/lib/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;AAK5B,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6BAA6B;AAC7B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC3D,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/lib/compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/compiler.js
CHANGED
|
@@ -117,7 +117,7 @@ export function computeHash(content) {
|
|
|
117
117
|
* Compile a single SSOT document according to its rule.
|
|
118
118
|
* Returns list of output file paths (relative to controller skill dir).
|
|
119
119
|
*/
|
|
120
|
-
export async function compileSsotDocument(ssotPath, rule, controllerDir, sourceName) {
|
|
120
|
+
export async function compileSsotDocument(ssotPath, rule, controllerDir, sourceName, projectRoot) {
|
|
121
121
|
const content = await readFile(ssotPath);
|
|
122
122
|
const now = new Date().toISOString();
|
|
123
123
|
const outputDir = path.join(controllerDir, rule.output);
|
|
@@ -188,7 +188,32 @@ export async function compileSsotDocument(ssotPath, rule, controllerDir, sourceN
|
|
|
188
188
|
validation.totalSections > 0
|
|
189
189
|
? Math.round((validation.validSections / validation.totalSections) * 100)
|
|
190
190
|
: 0;
|
|
191
|
-
|
|
191
|
+
// E2E mapping: resolve affected_e2e patterns to actual test files
|
|
192
|
+
const e2eMappings = [];
|
|
193
|
+
if (rule.affected_e2e && projectRoot) {
|
|
194
|
+
if (rule.splitBy === 'none') {
|
|
195
|
+
const e2eFile = rule.affected_e2e.replace('{section}', sourceName);
|
|
196
|
+
const e2ePath = path.join(projectRoot, e2eFile);
|
|
197
|
+
e2eMappings.push({
|
|
198
|
+
specFile: path.join(rule.output, rule.filenamePattern),
|
|
199
|
+
e2eFile,
|
|
200
|
+
exists: await fs.pathExists(e2ePath),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
const sections = parseMarkdownSections(content, rule.splitBy);
|
|
205
|
+
for (const section of sections) {
|
|
206
|
+
const e2eFile = rule.affected_e2e.replace('{section}', section.anchor);
|
|
207
|
+
const e2ePath = path.join(projectRoot, e2eFile);
|
|
208
|
+
e2eMappings.push({
|
|
209
|
+
specFile: path.join(rule.output, rule.filenamePattern.replace('{section}', section.anchor)),
|
|
210
|
+
e2eFile,
|
|
211
|
+
exists: await fs.pathExists(e2ePath),
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return { outputFiles, validation, e2eMappings };
|
|
192
217
|
}
|
|
193
218
|
// ─── Full Compile Pipeline ──────────────────────────────────────
|
|
194
219
|
/**
|
|
@@ -206,6 +231,7 @@ export async function compileAll(projectRoot, controllerDir) {
|
|
|
206
231
|
validations: [],
|
|
207
232
|
skipped: [],
|
|
208
233
|
errors: [],
|
|
234
|
+
affected_e2e: [],
|
|
209
235
|
};
|
|
210
236
|
// Find all SSOT documents
|
|
211
237
|
if (!await exists(ssotDir)) {
|
|
@@ -232,15 +258,45 @@ export async function compileAll(projectRoot, controllerDir) {
|
|
|
232
258
|
? rules.find((r) => r.source === ssotName)
|
|
233
259
|
: getDefaultRule(ssotName);
|
|
234
260
|
try {
|
|
235
|
-
const { outputFiles, validation } = await compileSsotDocument(ssotPath, rule, controllerDir, ssotName);
|
|
261
|
+
const { outputFiles, validation, e2eMappings } = await compileSsotDocument(ssotPath, rule, controllerDir, ssotName, projectRoot);
|
|
236
262
|
result.compiled.push({ source: ssotName, outputFiles });
|
|
237
263
|
result.validations.push(validation);
|
|
264
|
+
result.affected_e2e.push(...e2eMappings);
|
|
238
265
|
}
|
|
239
266
|
catch (err) {
|
|
240
267
|
result.success = false;
|
|
241
268
|
result.errors.push(`${ssotName} 컴파일 실패: ${err instanceof Error ? err.message : String(err)}`);
|
|
242
269
|
}
|
|
243
270
|
}
|
|
271
|
+
// Apply SSOT Map tier placement (Tier 0 → rules/, Tier 1-3 → references/)
|
|
272
|
+
try {
|
|
273
|
+
const { loadSSOTMap, getDocumentsForTier } = await import('./ssot-map.js');
|
|
274
|
+
const ssotMap = await loadSSOTMap(projectRoot);
|
|
275
|
+
if (ssotMap) {
|
|
276
|
+
result.ssotMapApplied = true;
|
|
277
|
+
const rulesDir = path.join(controllerDir, 'rules');
|
|
278
|
+
await fs.ensureDir(rulesDir);
|
|
279
|
+
// Tier 0 compiled specs → rules/ (skill-inject.sh가 읽는 경로)
|
|
280
|
+
for (const doc of getDocumentsForTier(ssotMap, 'tier-0-always')) {
|
|
281
|
+
const compiledPath = path.join(controllerDir, doc.compiled);
|
|
282
|
+
if (await exists(compiledPath))
|
|
283
|
+
continue; // 이미 compile에서 생성됨
|
|
284
|
+
// source가 컴파일되었으면 해당 출력을 rules/로 복사
|
|
285
|
+
const sourceBase = doc.source.replace('.md', '');
|
|
286
|
+
const compiled = result.compiled.find(c => c.source === sourceBase);
|
|
287
|
+
if (compiled && compiled.outputFiles.length > 0) {
|
|
288
|
+
const srcFile = compiled.outputFiles[0];
|
|
289
|
+
if (await exists(srcFile) && srcFile !== compiledPath) {
|
|
290
|
+
await fs.ensureDir(path.dirname(compiledPath));
|
|
291
|
+
await fs.copy(srcFile, compiledPath);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
// ssot-map 처리 실패 — non-blocking
|
|
299
|
+
}
|
|
244
300
|
// Save manifest
|
|
245
301
|
await saveManifest(projectRoot, controllerDir, result);
|
|
246
302
|
return result;
|
|
@@ -365,4 +421,58 @@ export async function validateDependencyGraph(projectRoot, controllerDir) {
|
|
|
365
421
|
}
|
|
366
422
|
return unresolved;
|
|
367
423
|
}
|
|
424
|
+
export async function validateSkillDependencies(projectRoot) {
|
|
425
|
+
const skillsDir = path.join(projectRoot, '.claude', 'skills');
|
|
426
|
+
const issues = [];
|
|
427
|
+
if (!await exists(skillsDir))
|
|
428
|
+
return issues;
|
|
429
|
+
const entries = await fs.readdir(skillsDir, { withFileTypes: true });
|
|
430
|
+
const skillDirs = entries.filter(e => e.isDirectory()).map(e => e.name);
|
|
431
|
+
const availableSkills = new Set(skillDirs);
|
|
432
|
+
const depsMap = new Map();
|
|
433
|
+
for (const skillName of skillDirs) {
|
|
434
|
+
const skillFile = path.join(skillsDir, skillName, 'SKILL.md');
|
|
435
|
+
if (!await exists(skillFile))
|
|
436
|
+
continue;
|
|
437
|
+
const content = await readFile(skillFile);
|
|
438
|
+
const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
439
|
+
if (!fmMatch)
|
|
440
|
+
continue;
|
|
441
|
+
const fm = fmMatch[1];
|
|
442
|
+
// Parse depends_on
|
|
443
|
+
const depsMatch = fm.match(/^depends_on:\s*\[([^\]]*)\]/m);
|
|
444
|
+
const deps = depsMatch
|
|
445
|
+
? depsMatch[1].split(',').map(s => s.trim().replace(/['"]/g, '')).filter(Boolean)
|
|
446
|
+
: [];
|
|
447
|
+
depsMap.set(skillName, deps);
|
|
448
|
+
for (const dep of deps) {
|
|
449
|
+
if (!availableSkills.has(dep)) {
|
|
450
|
+
issues.push({ skill: skillName, type: 'missing_dependency', target: dep });
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
// Parse conflicts_with
|
|
454
|
+
const conflictsMatch = fm.match(/^conflicts_with:\s*\[([^\]]*)\]/m);
|
|
455
|
+
const conflicts = conflictsMatch
|
|
456
|
+
? conflictsMatch[1].split(',').map(s => s.trim().replace(/['"]/g, '')).filter(Boolean)
|
|
457
|
+
: [];
|
|
458
|
+
for (const conflict of conflicts) {
|
|
459
|
+
if (availableSkills.has(conflict)) {
|
|
460
|
+
issues.push({ skill: skillName, type: 'conflict_active', target: conflict });
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
// Check circular dependencies
|
|
465
|
+
for (const [skill, deps] of depsMap) {
|
|
466
|
+
for (const dep of deps) {
|
|
467
|
+
const depDeps = depsMap.get(dep) || [];
|
|
468
|
+
if (depDeps.includes(skill)) {
|
|
469
|
+
// Only report once (alphabetical order)
|
|
470
|
+
if (skill < dep) {
|
|
471
|
+
issues.push({ skill, type: 'circular', target: dep });
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
return issues;
|
|
477
|
+
}
|
|
368
478
|
//# sourceMappingURL=compiler.js.map
|