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.
Files changed (218) hide show
  1. package/README.ko.md +4 -0
  2. package/README.md +4 -0
  3. package/dist/commands/audit.d.ts +22 -0
  4. package/dist/commands/audit.d.ts.map +1 -0
  5. package/dist/commands/audit.js +233 -0
  6. package/dist/commands/audit.js.map +1 -0
  7. package/dist/commands/compile.d.ts.map +1 -1
  8. package/dist/commands/compile.js +84 -3
  9. package/dist/commands/compile.js.map +1 -1
  10. package/dist/commands/daemon.d.ts.map +1 -1
  11. package/dist/commands/daemon.js +50 -3
  12. package/dist/commands/daemon.js.map +1 -1
  13. package/dist/commands/full.js +1 -0
  14. package/dist/commands/full.js.map +1 -1
  15. package/dist/commands/git/pr.js +6 -5
  16. package/dist/commands/git/pr.js.map +1 -1
  17. package/dist/commands/git/release.js +2 -7
  18. package/dist/commands/git/release.js.map +1 -1
  19. package/dist/commands/improve.js +2 -2
  20. package/dist/commands/improve.js.map +1 -1
  21. package/dist/commands/init.js +42 -6
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/log.d.ts.map +1 -1
  24. package/dist/commands/log.js +34 -2
  25. package/dist/commands/log.js.map +1 -1
  26. package/dist/commands/meta-index.d.ts.map +1 -1
  27. package/dist/commands/meta-index.js +30 -0
  28. package/dist/commands/meta-index.js.map +1 -1
  29. package/dist/commands/metrics.d.ts.map +1 -1
  30. package/dist/commands/metrics.js +6 -2
  31. package/dist/commands/metrics.js.map +1 -1
  32. package/dist/commands/retro.d.ts.map +1 -1
  33. package/dist/commands/retro.js +71 -14
  34. package/dist/commands/retro.js.map +1 -1
  35. package/dist/commands/session.js +3 -3
  36. package/dist/commands/session.js.map +1 -1
  37. package/dist/commands/skills.js +4 -7
  38. package/dist/commands/skills.js.map +1 -1
  39. package/dist/commands/status.js +1 -1
  40. package/dist/commands/status.js.map +1 -1
  41. package/dist/commands/upgrade.d.ts.map +1 -1
  42. package/dist/commands/upgrade.js +18 -1
  43. package/dist/commands/upgrade.js.map +1 -1
  44. package/dist/commands/workflow.d.ts +2 -0
  45. package/dist/commands/workflow.d.ts.map +1 -1
  46. package/dist/commands/workflow.js +180 -6
  47. package/dist/commands/workflow.js.map +1 -1
  48. package/dist/daemon/context-writer.d.ts +14 -0
  49. package/dist/daemon/context-writer.d.ts.map +1 -1
  50. package/dist/daemon/context-writer.js +29 -0
  51. package/dist/daemon/context-writer.js.map +1 -1
  52. package/dist/daemon/event-queue.d.ts +4 -0
  53. package/dist/daemon/event-queue.d.ts.map +1 -1
  54. package/dist/daemon/event-queue.js +107 -6
  55. package/dist/daemon/event-queue.js.map +1 -1
  56. package/dist/daemon/file-watcher.d.ts +14 -8
  57. package/dist/daemon/file-watcher.d.ts.map +1 -1
  58. package/dist/daemon/file-watcher.js +78 -41
  59. package/dist/daemon/file-watcher.js.map +1 -1
  60. package/dist/daemon/index.d.ts +1 -0
  61. package/dist/daemon/index.d.ts.map +1 -1
  62. package/dist/daemon/index.js +129 -53
  63. package/dist/daemon/index.js.map +1 -1
  64. package/dist/daemon/jsonl-watcher.d.ts +1 -0
  65. package/dist/daemon/jsonl-watcher.d.ts.map +1 -1
  66. package/dist/daemon/jsonl-watcher.js.map +1 -1
  67. package/dist/daemon/session-notes.d.ts +33 -0
  68. package/dist/daemon/session-notes.d.ts.map +1 -0
  69. package/dist/daemon/session-notes.js +74 -0
  70. package/dist/daemon/session-notes.js.map +1 -0
  71. package/dist/daemon/session-state.d.ts +8 -0
  72. package/dist/daemon/session-state.d.ts.map +1 -1
  73. package/dist/daemon/session-state.js +33 -0
  74. package/dist/daemon/session-state.js.map +1 -1
  75. package/dist/daemon/shutdown.d.ts.map +1 -1
  76. package/dist/daemon/shutdown.js +3 -1
  77. package/dist/daemon/shutdown.js.map +1 -1
  78. package/dist/index.js +2 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/lib/agent-generator.d.ts +4 -0
  81. package/dist/lib/agent-generator.d.ts.map +1 -1
  82. package/dist/lib/agent-generator.js +63 -3
  83. package/dist/lib/agent-generator.js.map +1 -1
  84. package/dist/lib/compile-rules.d.ts +2 -0
  85. package/dist/lib/compile-rules.d.ts.map +1 -1
  86. package/dist/lib/compile-rules.js +2 -0
  87. package/dist/lib/compile-rules.js.map +1 -1
  88. package/dist/lib/compiler.d.ts +21 -1
  89. package/dist/lib/compiler.d.ts.map +1 -1
  90. package/dist/lib/compiler.js +113 -3
  91. package/dist/lib/compiler.js.map +1 -1
  92. package/dist/lib/config.d.ts +3 -0
  93. package/dist/lib/config.d.ts.map +1 -1
  94. package/dist/lib/config.js +17 -2
  95. package/dist/lib/config.js.map +1 -1
  96. package/dist/lib/project.d.ts.map +1 -1
  97. package/dist/lib/project.js +8 -3
  98. package/dist/lib/project.js.map +1 -1
  99. package/dist/lib/skill-generator.d.ts +1 -1
  100. package/dist/lib/skill-generator.d.ts.map +1 -1
  101. package/dist/lib/skill-generator.js +39 -3
  102. package/dist/lib/skill-generator.js.map +1 -1
  103. package/dist/lib/ssot-map.d.ts +31 -0
  104. package/dist/lib/ssot-map.d.ts.map +1 -0
  105. package/dist/lib/ssot-map.js +76 -0
  106. package/dist/lib/ssot-map.js.map +1 -0
  107. package/dist/lib/template.js +1 -0
  108. package/dist/lib/template.js.map +1 -1
  109. package/dist/lib/workflow-state.d.ts +1 -1
  110. package/dist/lib/workflow-state.d.ts.map +1 -1
  111. package/dist/lib/workflow-state.js +1 -1
  112. package/dist/lib/workflow-state.js.map +1 -1
  113. package/dist/types/config.d.ts +10 -1
  114. package/dist/types/config.d.ts.map +1 -1
  115. package/dist/types/config.js +22 -17
  116. package/dist/types/config.js.map +1 -1
  117. package/dist/types/index.d.ts +1 -0
  118. package/dist/types/index.d.ts.map +1 -1
  119. package/dist/types/index.js +1 -0
  120. package/dist/types/index.js.map +1 -1
  121. package/dist/types/meta-index.d.ts +8 -0
  122. package/dist/types/meta-index.d.ts.map +1 -1
  123. package/dist/types/project.d.ts +1 -1
  124. package/dist/types/project.d.ts.map +1 -1
  125. package/dist/types/project.js.map +1 -1
  126. package/dist/types/ssot-map.d.ts +28 -0
  127. package/dist/types/ssot-map.d.ts.map +1 -0
  128. package/dist/types/ssot-map.js +6 -0
  129. package/dist/types/ssot-map.js.map +1 -0
  130. package/package.json +4 -4
  131. package/templates/base/agents/base/tsq-architect.md +2 -2
  132. package/templates/base/agents/base/tsq-librarian.md +45 -0
  133. package/templates/base/knowledge/checklists/plan-quality.md +31 -0
  134. package/templates/base/knowledge/checklists/stability-verification.md +14 -0
  135. package/templates/base/skills/_shared/naming-conventions.md +49 -0
  136. package/templates/base/skills/_template/SKILL.md +33 -17
  137. package/templates/base/skills/audit/SKILL.md +66 -0
  138. package/templates/base/skills/coding/SKILL.md +49 -29
  139. package/templates/base/skills/coding/rules/async-patterns.md +81 -0
  140. package/templates/base/skills/coding/rules/code-organization.md +80 -0
  141. package/templates/base/skills/coding/rules/error-handling.md +76 -0
  142. package/templates/base/skills/coding/rules/type-safety.md +85 -0
  143. package/templates/base/skills/controller/SKILL.md +50 -84
  144. package/templates/base/skills/controller/delegation/developer.md +25 -0
  145. package/templates/base/skills/controller/delegation/librarian.md +33 -0
  146. package/templates/base/skills/controller/delegation/reviewer.md +19 -0
  147. package/templates/base/skills/controller/memory/.gitkeep +0 -0
  148. package/templates/base/skills/controller/triggers/phase-complete.md +25 -0
  149. package/templates/base/skills/controller/triggers/sequence-complete.md +15 -0
  150. package/templates/base/skills/controller/triggers/ssot-changed.md +14 -0
  151. package/templates/base/skills/controller/triggers/task-complete.md +14 -0
  152. package/templates/base/skills/database/SKILL.md +8 -25
  153. package/templates/base/skills/database/rules/query-optimization.md +32 -0
  154. package/templates/base/skills/database/rules/supabase-patterns.md +94 -0
  155. package/templates/base/skills/librarian/SKILL.md +53 -0
  156. package/templates/base/skills/main-session-constraints/SKILL.md +62 -0
  157. package/templates/base/skills/methodology/tdd/SKILL.md +6 -0
  158. package/templates/base/skills/product-audit/SKILL.md +115 -0
  159. package/templates/base/skills/product-audit/checklists/01-security.md +86 -0
  160. package/templates/base/skills/product-audit/checklists/02-performance.md +67 -0
  161. package/templates/base/skills/product-audit/checklists/03-seo.md +46 -0
  162. package/templates/base/skills/product-audit/checklists/04-accessibility.md +66 -0
  163. package/templates/base/skills/product-audit/checklists/05-ui-ux.md +50 -0
  164. package/templates/base/skills/product-audit/checklists/06-architecture.md +53 -0
  165. package/templates/base/skills/product-audit/checklists/07-functional-requirements.md +55 -0
  166. package/templates/base/skills/product-audit/rules/audit-protocol.md +136 -0
  167. package/templates/base/skills/product-audit/rules/false-positive-guard.md +81 -0
  168. package/templates/base/skills/product-audit/rules/scoring-criteria.md +113 -0
  169. package/templates/base/skills/product-audit/templates/improvement-plan-template.md +60 -0
  170. package/templates/base/skills/product-audit/templates/report-template.md +88 -0
  171. package/templates/base/skills/prompt-engineering/SKILL.md +54 -73
  172. package/templates/base/skills/retrospective/SKILL.md +70 -95
  173. package/templates/base/skills/retrospective/references/improvement-template.md +26 -0
  174. package/templates/base/skills/review/SKILL.md +72 -0
  175. package/templates/base/skills/security/SKILL.md +50 -37
  176. package/templates/base/skills/security/rules/auth-patterns.md +62 -0
  177. package/templates/base/skills/security/rules/dependency-security.md +69 -0
  178. package/templates/base/skills/security/rules/input-validation.md +68 -0
  179. package/templates/base/skills/security/rules/secrets-management.md +65 -0
  180. package/templates/base/skills/spec/SKILL.md +60 -0
  181. package/templates/base/skills/stability-verification/SKILL.md +64 -0
  182. package/templates/base/skills/stability-verification/references/release-checklist.md +34 -0
  183. package/templates/base/skills/stability-verification/references/security-fix-patterns.md +112 -0
  184. package/templates/base/skills/stability-verification/rules/verification-layers.md +67 -0
  185. package/templates/base/skills/stability-verification/rules/verification-workflow.md +69 -0
  186. package/templates/base/skills/stability-verification/scripts/verify.sh +294 -0
  187. package/templates/base/skills/testing/SKILL.md +33 -25
  188. package/templates/base/skills/testing/references/e2e-stability.md +33 -0
  189. package/templates/base/skills/tsq-cli/SKILL.md +73 -0
  190. package/templates/base/skills/tsq-cli/references/cli-reference.md +92 -0
  191. package/templates/base/skills/tsq-protocol/SKILL.md +41 -25
  192. package/templates/base/skills/typescript/SKILL.md +3 -9
  193. package/templates/base/timsquad/ssot/test-spec.template.md +11 -1
  194. package/templates/base/timsquad/ssot-map.template.yaml +41 -0
  195. package/templates/platforms/claude-code/rules/api-conventions.md +12 -0
  196. package/templates/platforms/claude-code/rules/build-gate.md +28 -0
  197. package/templates/platforms/claude-code/rules/completion-verification.md +30 -0
  198. package/templates/platforms/claude-code/rules/context-monitor.md +23 -0
  199. package/templates/platforms/claude-code/rules/librarian-constraints.md +11 -0
  200. package/templates/platforms/claude-code/rules/plan-review.md +45 -0
  201. package/templates/platforms/claude-code/rules/quality-guards.md +43 -0
  202. package/templates/platforms/claude-code/rules/session-notes.md +18 -0
  203. package/templates/platforms/claude-code/rules/skill-suggest.md +27 -0
  204. package/templates/platforms/claude-code/rules/test-conventions.md +13 -0
  205. package/templates/platforms/claude-code/scripts/build-gate.sh +73 -0
  206. package/templates/platforms/claude-code/scripts/change-scope-guard.sh +113 -0
  207. package/templates/platforms/claude-code/scripts/completion-guard.sh +122 -24
  208. package/templates/platforms/claude-code/scripts/context-restore.sh +68 -0
  209. package/templates/platforms/claude-code/scripts/e2e-commit-gate.sh +70 -0
  210. package/templates/platforms/claude-code/scripts/e2e-marker.sh +51 -0
  211. package/templates/platforms/claude-code/scripts/phase-guard.sh +5 -5
  212. package/templates/platforms/claude-code/scripts/pre-compact.sh +70 -0
  213. package/templates/platforms/claude-code/scripts/safe-guard.sh +83 -0
  214. package/templates/platforms/claude-code/scripts/skill-inject.sh +216 -0
  215. package/templates/platforms/claude-code/scripts/skill-rules.json +95 -0
  216. package/templates/platforms/claude-code/scripts/skill-suggest.sh +105 -0
  217. package/templates/platforms/claude-code/scripts/subagent-inject.sh +53 -0
  218. 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":"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"}
1
+ {"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/daemon/session-state.ts"],"names":[],"mappings":"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"}
@@ -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,CA+Df;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3E"}
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"}
@@ -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":"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"}
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;AAgBvD;;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,CA4Cf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAwEzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAExE"}
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, processed, 'utf-8');
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>시퀀스 분석, 아키텍처 리뷰, 태스크 로그 분석, 구조 검토</trigger>
136
+ <trigger>시퀀스 분석, 아키텍처 리뷰, 태스크 로그 분석, 구조 검토, 계획 검증, plan review</trigger>
86
137
  <delegate-to>@tsq-architect</delegate-to>
87
- <context>시퀀스 완료 후 로그 분석 및 보고서 작성</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":"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"}
1
+ {"version":3,"file":"agent-generator.js","sourceRoot":"","sources":["../../src/lib/agent-generator.ts"],"names":[],"mappings":"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"}
@@ -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;CACrB;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,EAyEtC,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"}
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;AAmDH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C;QACE,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,mBAAmB;QACpC,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC;QACnD,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,mBAAmB;QACpC,cAAc,EAAE,CAAC,QAAQ,CAAC;QAC1B,WAAW,EAAE,uBAAuB;KACrC;IACD;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,qBAAqB;QACtC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;QAC/C,WAAW,EAAE,kBAAkB;KAChC;IACD;QACE,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,wBAAwB;QACzC,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;QAClC,WAAW,EAAE,kBAAkB;KAChC;IACD;QACE,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,mBAAmB;QACpC,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,mBAAmB;QACpC,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,yBAAyB;QAC1C,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,eAAe;KAC7B;IACD;QACE,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,mBAAmB;QACpC,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,gBAAgB;KAC9B;IACD;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,mBAAmB;QACpC,cAAc,EAAE,CAAC,QAAQ,CAAC;QAC1B,WAAW,EAAE,YAAY;KAC1B;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAA2B;IACzD,gDAAgD;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO;QACL,MAAM;QACN,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,GAAG,MAAM,UAAU;QACpC,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,GAAG,MAAM,iBAAiB;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compile-rules.js","sourceRoot":"","sources":["../../src/lib/compile-rules.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/lib/compiler.ts"],"names":[],"mappings":"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"}
@@ -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
- return { outputFiles, validation };
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