@tienne/gestalt 0.95.0 โ†’ 0.97.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 (120) hide show
  1. package/CLAUDE.md +5 -3
  2. package/README.ko.md +1 -0
  3. package/README.md +1 -0
  4. package/dist/package.json +4 -3
  5. package/dist/plugin/skills/_shared/agent-model.md +5 -3
  6. package/dist/plugin/skills/_shared/proactive-routing.md +1 -0
  7. package/dist/plugin/skills/agent/SKILL.md +1 -1
  8. package/dist/plugin/skills/architecture/SKILL.md +31 -5
  9. package/dist/plugin/skills/architecture/references/domain-flow.md +1 -0
  10. package/dist/plugin/skills/architecture/references/projections.md +56 -0
  11. package/dist/plugin/skills/architecture/references/rerun.md +3 -1
  12. package/dist/plugin/skills/blast-radius/SKILL.md +1 -1
  13. package/dist/plugin/skills/build-graph/SKILL.md +1 -1
  14. package/dist/plugin/skills/doubt/SKILL.md +229 -0
  15. package/dist/plugin/skills/execute/SKILL.md +13 -1
  16. package/dist/plugin/skills/explain/SKILL.md +1 -1
  17. package/dist/plugin/skills/interview/SKILL.md +1 -1
  18. package/dist/plugin/skills/local-pr/SKILL.md +14 -1
  19. package/dist/plugin/skills/pr/SKILL.md +14 -1
  20. package/dist/plugin/skills/review/SKILL.md +14 -1
  21. package/dist/plugin/skills/review-loop/SKILL.md +13 -0
  22. package/dist/plugin/skills/review-reply/SKILL.md +13 -0
  23. package/dist/plugin/skills/ship/SKILL.md +14 -1
  24. package/dist/plugin/skills/solve/SKILL.md +1 -1
  25. package/dist/plugin/skills/spec/SKILL.md +1 -1
  26. package/dist/schemas/architecture-ir.schema.json +51 -3
  27. package/dist/schemas/gestalt.schema.json +12 -0
  28. package/dist/src/architecture/blueprint-layout.d.ts +105 -0
  29. package/dist/src/architecture/blueprint-layout.d.ts.map +1 -0
  30. package/dist/src/architecture/blueprint-layout.js +297 -0
  31. package/dist/src/architecture/blueprint-layout.js.map +1 -0
  32. package/dist/src/architecture/delta-renderer.d.ts +35 -0
  33. package/dist/src/architecture/delta-renderer.d.ts.map +1 -0
  34. package/dist/src/architecture/delta-renderer.js +329 -0
  35. package/dist/src/architecture/delta-renderer.js.map +1 -0
  36. package/dist/src/architecture/delta.d.ts +70 -0
  37. package/dist/src/architecture/delta.d.ts.map +1 -0
  38. package/dist/src/architecture/delta.js +342 -0
  39. package/dist/src/architecture/delta.js.map +1 -0
  40. package/dist/src/architecture/drilldown.d.ts +19 -1
  41. package/dist/src/architecture/drilldown.d.ts.map +1 -1
  42. package/dist/src/architecture/drilldown.js +5 -5
  43. package/dist/src/architecture/drilldown.js.map +1 -1
  44. package/dist/src/architecture/er-layout.d.ts +97 -0
  45. package/dist/src/architecture/er-layout.d.ts.map +1 -0
  46. package/dist/src/architecture/er-layout.js +344 -0
  47. package/dist/src/architecture/er-layout.js.map +1 -0
  48. package/dist/src/architecture/flow-layout.d.ts +22 -1
  49. package/dist/src/architecture/flow-layout.d.ts.map +1 -1
  50. package/dist/src/architecture/flow-layout.js +13 -9
  51. package/dist/src/architecture/flow-layout.js.map +1 -1
  52. package/dist/src/architecture/html-renderer.d.ts +4 -0
  53. package/dist/src/architecture/html-renderer.d.ts.map +1 -1
  54. package/dist/src/architecture/html-renderer.js +462 -20
  55. package/dist/src/architecture/html-renderer.js.map +1 -1
  56. package/dist/src/architecture/html-theme.d.ts +18 -0
  57. package/dist/src/architecture/html-theme.d.ts.map +1 -1
  58. package/dist/src/architecture/html-theme.js +101 -1
  59. package/dist/src/architecture/html-theme.js.map +1 -1
  60. package/dist/src/architecture/ir-schema.d.ts +358 -117
  61. package/dist/src/architecture/ir-schema.d.ts.map +1 -1
  62. package/dist/src/architecture/ir-schema.js +33 -1
  63. package/dist/src/architecture/ir-schema.js.map +1 -1
  64. package/dist/src/architecture/lifecycle-layout.d.ts +94 -0
  65. package/dist/src/architecture/lifecycle-layout.d.ts.map +1 -0
  66. package/dist/src/architecture/lifecycle-layout.js +471 -0
  67. package/dist/src/architecture/lifecycle-layout.js.map +1 -0
  68. package/dist/src/architecture/merge.d.ts.map +1 -1
  69. package/dist/src/architecture/merge.js +72 -2
  70. package/dist/src/architecture/merge.js.map +1 -1
  71. package/dist/src/architecture/store.d.ts +6 -1
  72. package/dist/src/architecture/store.d.ts.map +1 -1
  73. package/dist/src/architecture/store.js +75 -8
  74. package/dist/src/architecture/store.js.map +1 -1
  75. package/dist/src/architecture/types.d.ts +35 -3
  76. package/dist/src/architecture/types.d.ts.map +1 -1
  77. package/dist/src/architecture/types.js +13 -1
  78. package/dist/src/architecture/types.js.map +1 -1
  79. package/dist/src/architecture/validator.d.ts +27 -3
  80. package/dist/src/architecture/validator.d.ts.map +1 -1
  81. package/dist/src/architecture/validator.js +331 -8
  82. package/dist/src/architecture/validator.js.map +1 -1
  83. package/dist/src/core/config.d.ts +18 -0
  84. package/dist/src/core/config.d.ts.map +1 -1
  85. package/dist/src/core/config.js +14 -1
  86. package/dist/src/core/config.js.map +1 -1
  87. package/dist/src/core/hooks-env.d.ts +7 -2
  88. package/dist/src/core/hooks-env.d.ts.map +1 -1
  89. package/dist/src/core/hooks-env.js +7 -2
  90. package/dist/src/core/hooks-env.js.map +1 -1
  91. package/dist/src/mcp/tools/architecture-passthrough.d.ts.map +1 -1
  92. package/dist/src/mcp/tools/architecture-passthrough.js +91 -2
  93. package/dist/src/mcp/tools/architecture-passthrough.js.map +1 -1
  94. package/package.json +4 -3
  95. package/plugin/.codex-plugin/plugin.json +1 -1
  96. package/plugin/.mcp.json +1 -1
  97. package/plugin/mcp.json +1 -1
  98. package/plugin/skills/_shared/agent-model.md +5 -3
  99. package/plugin/skills/_shared/proactive-routing.md +1 -0
  100. package/plugin/skills/agent/SKILL.md +1 -1
  101. package/plugin/skills/architecture/SKILL.md +31 -5
  102. package/plugin/skills/architecture/references/domain-flow.md +1 -0
  103. package/plugin/skills/architecture/references/projections.md +56 -0
  104. package/plugin/skills/architecture/references/rerun.md +3 -1
  105. package/plugin/skills/blast-radius/SKILL.md +1 -1
  106. package/plugin/skills/build-graph/SKILL.md +1 -1
  107. package/plugin/skills/doubt/SKILL.md +229 -0
  108. package/plugin/skills/execute/SKILL.md +13 -1
  109. package/plugin/skills/explain/SKILL.md +1 -1
  110. package/plugin/skills/interview/SKILL.md +1 -1
  111. package/plugin/skills/local-pr/SKILL.md +14 -1
  112. package/plugin/skills/pr/SKILL.md +14 -1
  113. package/plugin/skills/review/SKILL.md +14 -1
  114. package/plugin/skills/review-loop/SKILL.md +13 -0
  115. package/plugin/skills/review-reply/SKILL.md +13 -0
  116. package/plugin/skills/ship/SKILL.md +14 -1
  117. package/plugin/skills/solve/SKILL.md +1 -1
  118. package/plugin/skills/spec/SKILL.md +1 -1
  119. package/schemas/architecture-ir.schema.json +51 -3
  120. package/schemas/gestalt.schema.json +12 -0
@@ -12,6 +12,8 @@ import { linkDocs } from '../../architecture/doc-link.js';
12
12
  import { matchEndpoints } from '../../architecture/endpoint-match.js';
13
13
  import { matchMcpTools } from '../../architecture/mcp-tool-match.js';
14
14
  import { matchNameRefs } from '../../architecture/name-ref-match.js';
15
+ import { computeArchitectureDelta, deltaCounts, deltaOverBudget, deltaScope, } from '../../architecture/delta.js';
16
+ import { computeDeltaLayout, renderDeltaHtml, reuseDeltaLayout, } from '../../architecture/delta-renderer.js';
15
17
  import { computeDrilldown, shouldDrillDown } from '../../architecture/drilldown.js';
16
18
  import { renderArchitectureHtml, renderDrilldownHtml } from '../../architecture/html-renderer.js';
17
19
  import { parseArchitectureIr } from '../../architecture/ir-schema.js';
@@ -19,7 +21,7 @@ import { assignStages, computeLayout } from '../../architecture/layout.js';
19
21
  import { mergeArchitectureIrs } from '../../architecture/merge.js';
20
22
  import { ArchitectureStore, mergeWithPrevious, previousRunSummary, } from '../../architecture/store.js';
21
23
  import { ARCHITECTURE_VIEWS, } from '../../architecture/types.js';
22
- import { validateArchitectureIr, } from '../../architecture/validator.js';
24
+ import { redactForSharing, validateArchitectureIr, } from '../../architecture/validator.js';
23
25
  import { writeJsonAtomic } from '../../core/json-file.js';
24
26
  import { log } from '../../core/log.js';
25
27
  import { READ_ONLY_ALLOW_WORDS, READ_ONLY_CLI_VERBS, READ_ONLY_DENY_WORDS, filterReadOnlyTools, } from '../../utils/read-only-tools.js';
@@ -231,6 +233,15 @@ async function handleRender(input, repoRoot) {
231
233
  const htmlPath = store.saveHtml(view, 'private', privateHtml);
232
234
  const sharedHtmlPath = store.saveHtml(view, 'shared', sharedHtml);
233
235
  log(`architecture: rendered ${view} โ†’ ${htmlPath}`);
236
+ const delta = await renderDelta(prev, validated, repoRoot, store).catch((e) => {
237
+ // ๋ณด์กฐ ์‚ฐ์ถœ๋ฌผ์ด๋ผ ๋ฉ”์ธ ๊ทธ๋ฆผ์€ ์ด๋ฏธ ์ €์žฅ๋๋‹ค. ์—ฌ๊ธฐ์„œ ๋˜์ง€๋ฉด ์„ฑ๊ณตํ•œ render๊ฐ€ ์‹คํŒจ๋กœ ๋ณด์ธ๋‹ค
238
+ const message = e instanceof Error ? e.message : String(e);
239
+ log(`architecture: delta ${view} failed: ${message}`);
240
+ return {
241
+ result: { status: 'failed', message: `๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์„ ๋งŒ๋“ค์ง€ ๋ชปํ–ˆ๋‹ค. ${message}` },
242
+ };
243
+ });
244
+ const warnings = [...validated.warnings, ...(delta.warning ? [delta.warning] : [])];
234
245
  return {
235
246
  ok: true,
236
247
  irPath,
@@ -249,10 +260,88 @@ async function handleRender(input, repoRoot) {
249
260
  }
250
261
  : {}),
251
262
  stats: computeStats(validated),
252
- ...(validated.warnings.length > 0 ? { warnings: validated.warnings } : {}),
263
+ delta: delta.result,
264
+ ...(warnings.length > 0 ? { warnings } : {}),
253
265
  sourcesUsed: validated.ir.sourcesUsed,
254
266
  };
255
267
  }
268
+ function deltaSnapshot(v, redact = false) {
269
+ return {
270
+ ir: redact ? redactForSharing(v.ir) : v.ir,
271
+ nodeIds: v.drawableNodeIds,
272
+ edgeIds: v.drawableEdgeIds,
273
+ };
274
+ }
275
+ function changeCounts(delta) {
276
+ const counts = {};
277
+ for (const e of delta.ledger)
278
+ counts[e.change] = (counts[e.change] ?? 0) + 1;
279
+ return counts;
280
+ }
281
+ /**
282
+ * ๋ณ‘ํ•ฉ ์ „์— ์ฝ์€ ์ด์ „ IR์„ Before๋กœ, ์ด๋ฒˆ ๋ณ‘ํ•ฉ ๊ฒฐ๊ณผ๋ฅผ After๋กœ ๋†“๊ณ  ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์„ ์“ด๋‹ค.
283
+ * ๋ฐ”๋€ ๊ฒŒ ์—†์œผ๋ฉด ์˜› delta ํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ ํŒŒ์ผ์€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€ ์‹คํ–‰์˜ ๊ธฐ๋ก์ด๋‹ค
284
+ */
285
+ async function renderDelta(prev, next, repoRoot, store) {
286
+ if (prev === null) {
287
+ return { result: { status: 'no_previous', message: '๋น„๊ตํ•  ์ด์ „ ๊ทธ๋ฆผ์ด ์—†๋‹ค.' } };
288
+ }
289
+ // ์ด์ „ IR์€ ๊ทธ๋•Œ ์ด๋ฏธ ๊ทผ๊ฑฐ ํŒŒ์ผ์„ ํ™•์ธํ–ˆ๋‹ค. ๊ทธ ๋’ค ์˜ฎ๊ฒจ์ง„ ํŒŒ์ผ ๋•Œ๋ฌธ์— ๋น„๊ต ์ž์ฒด๊ฐ€ ๋ง‰ํžˆ๋ฉด ์•ˆ ๋œ๋‹ค
290
+ const before = validate(prev, repoRoot, false);
291
+ if (!before.ok) {
292
+ return {
293
+ result: {
294
+ status: 'no_previous',
295
+ message: '๋น„๊ตํ•  ์ด์ „ ๊ทธ๋ฆผ์ด ์—†๋‹ค. ์ €์žฅ๋œ ์ด์ „ IR์ด ์ง€๊ธˆ ๊ฒ€์ฆ ๊ทœ์น™์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.',
296
+ },
297
+ };
298
+ }
299
+ const delta = computeArchitectureDelta(deltaSnapshot(before.value), deltaSnapshot(next));
300
+ if (delta.ledger.length === 0) {
301
+ return { result: { status: 'unchanged', message: '์ด์ „ ๊ทธ๋ฆผ๊ณผ ๊ตฌ์กฐ๊ฐ€ ๊ฐ™๋‹ค.' } };
302
+ }
303
+ const scope = deltaScope(delta);
304
+ const view = next.ir.view;
305
+ const privateLayout = await computeDeltaLayout(delta, scope);
306
+ // ๊ฐ€๋ฆฐ ๊ธ€์ž๋ผ๋ฆฌ ๋‹ค์‹œ ๋น„๊ตํ•ด์•ผ ๊ณต์œ ๋ณธ ์›์žฅ์— ๊ณ„์ • ID ๊ฐ™์€ ์›๋ฌธ์ด ์˜› ๊ฐ’์œผ๋กœ ์ƒˆ์ง€ ์•Š๋Š”๋‹ค
307
+ const shared = computeArchitectureDelta(deltaSnapshot(before.value, true), deltaSnapshot(next, true));
308
+ const sharedScope = deltaScope(shared);
309
+ const sharedLayout = await reuseDeltaLayout(privateLayout, shared, sharedScope);
310
+ // ๋‘˜ ๋‹ค ๊ทธ๋ฆฐ ๋’ค์— ์“ด๋‹ค. ํ•œ์ชฝ๋งŒ ์“ฐ๊ณ  ์‹คํŒจํ•˜๋ฉด ๋‘ ํŒŒ์ผ์ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹คํ–‰์˜ ๊ฒƒ์ด ๋œ๋‹ค
311
+ const privateHtml = renderDeltaHtml(delta, scope, privateLayout, { audience: 'private' });
312
+ const sharedHtml = renderDeltaHtml(shared, sharedScope, sharedLayout, { audience: 'shared' });
313
+ const htmlPath = store.saveDeltaHtml(view, 'private', privateHtml);
314
+ const sharedHtmlPath = store.saveDeltaHtml(view, 'shared', sharedHtml);
315
+ log(`architecture: delta ${view} โ†’ ${htmlPath}`);
316
+ const counts = deltaCounts(delta, scope);
317
+ const over = deltaOverBudget(counts);
318
+ return {
319
+ result: {
320
+ status: 'created',
321
+ htmlPath,
322
+ sharedHtmlPath,
323
+ changes: changeCounts(delta),
324
+ ...(scope.scoped
325
+ ? {
326
+ scoped: {
327
+ drawnComponents: scope.nodeIds.size,
328
+ totalComponents: scope.total.components,
329
+ },
330
+ }
331
+ : {}),
332
+ },
333
+ ...(over.length > 0
334
+ ? {
335
+ warning: {
336
+ code: 'DELTA_OVER_BUDGET',
337
+ message: `๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์ด ํ•œ ์žฅ์— ์ฝํžˆ๋Š” ์–‘์„ ๋„˜๋Š”๋‹ค. ${over.join(', ')}. ๋ฐ”๋€ ์˜์—ญ์„ ๋‚˜๋ˆ  ๋‹จ๊ณ„๋ณ„๋กœ ๋‹ค์‹œ ๊ทธ๋ฆฐ๋‹ค.`,
338
+ subjectId: view,
339
+ counts: { ...counts },
340
+ },
341
+ }
342
+ : {}),
343
+ };
344
+ }
256
345
  function handleMerge(input, repoRoot) {
257
346
  const raws = [...(input.irs ?? [])];
258
347
  for (const path of input.irPaths ?? []) {
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-passthrough.js","sourceRoot":"","sources":["../../../../src/mcp/tools/architecture-passthrough.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture-passthrough.js","sourceRoot":"","sources":["../../../../src/mcp/tools/architecture-passthrough.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.95.0",
3
+ "version": "0.97.0",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,12 +45,13 @@
45
45
  "postversion": "pnpm run version:sync && pnpm run build:output-style",
46
46
  "verify:rules": "tsx scripts/verify-rule-refs.ts",
47
47
  "verify:rule-overlap": "tsx scripts/verify-rule-overlap.ts",
48
- "gate": "pnpm typecheck && pnpm verify:rules && pnpm verify:rule-overlap && pnpm verify:routing && pnpm lint && pnpm format:check && pnpm build && pnpm test",
48
+ "gate": "pnpm typecheck && pnpm verify:rules && pnpm verify:rule-overlap && pnpm verify:routing && pnpm verify:skill-confusion && pnpm lint && pnpm format:check && pnpm build && pnpm test",
49
49
  "humanize:baseline": "tsx scripts/humanize-baseline.ts",
50
50
  "build:output-style": "tsx scripts/build-output-style.ts",
51
51
  "verify:output-style": "tsx scripts/build-output-style.ts --dry-run",
52
52
  "build:routing": "tsx scripts/build-skill-routing.ts",
53
- "verify:routing": "tsx scripts/build-skill-routing.ts --check"
53
+ "verify:routing": "tsx scripts/build-skill-routing.ts --check",
54
+ "verify:skill-confusion": "tsx scripts/verify-skill-confusion.ts"
54
55
  },
55
56
  "dependencies": {
56
57
  "@anthropic-ai/sdk": "^0.39.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gestalt",
3
- "version": "0.95.0",
3
+ "version": "0.97.0",
4
4
  "description": "Gestalt psychology-driven AI development harness. Transforms scattered requirements into structured, validated specifications through interactive interviews.",
5
5
  "author": {
6
6
  "name": "tienne"
package/plugin/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "gestalt": {
4
4
  "command": "npx",
5
- "args": ["-y", "@tienne/gestalt@0.95.0", "serve"],
5
+ "args": ["-y", "@tienne/gestalt@0.97.0", "serve"],
6
6
  "startup_timeout_sec": 180,
7
7
  "tool_timeout_sec": 900
8
8
  }
package/plugin/mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "gestalt": {
4
4
  "command": "npx",
5
- "args": ["-y", "@tienne/gestalt@0.95.0", "serve"],
5
+ "args": ["-y", "@tienne/gestalt@0.97.0", "serve"],
6
6
  "startup_timeout_sec": 180,
7
7
  "tool_timeout_sec": 900
8
8
  }
@@ -32,6 +32,7 @@ ges_agent { action: "list" }
32
32
  ## ๋“ฑ๋ก ์—์ด์ „ํŠธ๊ฐ€ ์—†๋Š” ์ž๋ฆฌ
33
33
 
34
34
  ๋ฆฌ๋ทฐ ์Šค๋ ˆ๋“œ ๋ถ„๋ฅ˜์ฒ˜๋Ÿผ **์—ญํ•  ์ •์˜ ์—†์ด ๊ธฐ๊ณ„์ ์œผ๋กœ ์ฝ๊ณ  ์˜ฎ๊ฒจ ์ ๋Š” ์ž‘์—…**์„ ์„œ๋ธŒ์—์ด์ „ํŠธ์— ๋งก๊ธธ ๋•Œ๊ฐ€ ์žˆ๋‹ค.
35
+ `doubt`์˜ ๋ฐ˜๋ฐ• ๋ฆฌ๋ทฐ์–ด์ฒ˜๋Ÿผ ํŒ๋‹จ์ด ํ•„์š”ํ•œ ์ผ์„ ๋“ฑ๋ก ์—์ด์ „ํŠธ ์—†์ด ๋งก๊ธธ ๋•Œ๋„ ์žˆ๋‹ค.
35
36
  ์ด๋Ÿฐ ์ž๋ฆฌ์—” ๋„˜๊ธธ ์—์ด์ „ํŠธ ์ด๋ฆ„์ด ์—†์–ด์„œ `ges_agent { action: "get" }`์„ ์“ธ ์ˆ˜ ์—†๋‹ค. ๋Œ€์‹  `ges_status`๊ฐ€
36
37
  ๊ฐ™์€ ํ‘œ๋ฅผ ํ†ต์งธ๋กœ ์ค€๋‹ค.
37
38
 
@@ -40,9 +41,10 @@ ges_status {}
40
41
  โ†’ { tierModels: { frugal: "haiku", standard: "sonnet", frontier: "opus" }, ... }
41
42
  ```
42
43
 
43
- ์—ฌ๊ธฐ์„œ `tierModels.frugal`์„ ๋ฝ‘์•„ Agent ๋„๊ตฌ์˜ `model`๋กœ ๋„˜๊ธด๋‹ค. ํŒ๋‹จํ•˜๋Š” ์ž๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ชจ์•„์„œ ๋ถ„๋ฅ˜ํ•˜๊ณ 
44
- ์ •๋ฆฌํ•˜๋Š” ์ž๋ฆฌ, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ๋žŒ์ด ๋‹ค์‹œ ํ™•์ธํ•˜๋Š” ์ž‘์—…์—๋งŒ ์“ด๋‹ค โ€” ํ™•์ • ํŒ๋‹จ, ๋ฌธ์žฅ ์ž‘์„ฑ, ํŒŒ์ผ ์ˆ˜์ •์€
45
- ์ด ๊ฒฝ๋กœ๋กœ ๋‚ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
44
+ ์—ฌ๊ธฐ์„œ Agent ๋„๊ตฌ์˜ `model`๋กœ ๋„˜๊ธธ ๊ฐ’์„ ๋ฝ‘๋Š”๋‹ค. ๋ชจ์•„์„œ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์ •๋ฆฌํ•˜๋Š” ์ผ, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ๋žŒ์ด ๋‹ค์‹œ
45
+ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด๋ฉด `tierModels.frugal`์„ ์“ด๋‹ค. `frugal`๋กœ๋Š” ํ™•์ • ํŒ๋‹จ, ๋ฌธ์žฅ ์ž‘์„ฑ, ํŒŒ์ผ ์ˆ˜์ •์„ ๋งก๊ธฐ์ง€ ์•Š๋Š”๋‹ค.
46
+ ํŒ๋‹จ์ด๋‚˜ ๋ฆฌ๋ทฐ๊ฐ€ ํ•„์š”ํ•œ ์ผ์ด๋ฉด ์•„๋ž˜ "์ž‘์—…๋ณ„ model๊ณผ effort ์„ธํŠธ" ํ‘œ์—์„œ ๊ทธ ์ผ์˜ tier๋ฅผ ๊ณจ๋ผ ๊ฐ™์€
47
+ `tierModels`์—์„œ ์ฝ๋Š”๋‹ค.
46
48
 
47
49
  ## ์ž‘์—…๋ณ„ model๊ณผ effort ์„ธํŠธ
48
50
 
@@ -80,6 +80,7 @@
80
80
  | "architecture", "์•„ํ‚คํ…์ฒ˜ ๊ทธ๋ ค์ค˜", "์•„ํ‚คํ…์ฒ˜ ๋ทฐ", "ํ™”๋ฉด์—์„œ DB๊นŒ์ง€", "์ด ํ™”๋ฉด์ด ์–ด๋–ค API๋ฅผ ๋ถ€๋ฅด๋Š”์ง€ ๊ทธ๋ ค์ค˜", "๋ฐฐํฌ ๊ฒฝ๋กœ ๊ทธ๋ ค์ค˜", "CI/CD ๊ฒฝ๋กœ ๊ทธ๋ ค์ค˜", "์„œ๋น™ ์ธํ”„๋ผ ๊ทธ๋ ค์ค˜", "ํ•˜๋„ค์Šค ๊ตฌ์กฐ ๊ทธ๋ ค์ค˜", "์Šคํ‚ฌ์ด๋ž‘ MCP ๋„๊ตฌ ๊ด€๊ณ„ ๊ทธ๋ ค์ค˜", "์‹œํ€€์Šค ๊ทธ๋ ค์ค˜", "ํ˜ธ์ถœ ์ˆœ์„œ ๊ทธ๋ ค์ค˜", "๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ทธ๋ ค์ค˜", "๋ฐ์ดํ„ฐ ๋ฆฌ๋‹ˆ์ง€ ๊ทธ๋ ค์ค˜", "์—…๋ฌด ํ๋ฆ„ ๊ทธ๋ ค์ค˜", "๊ฒฐ์žฌ ์ ˆ์ฐจ ๊ทธ๋ ค์ค˜", "๋‘˜ ๊ตฌ์กฐ ๋น„๊ตํ•ด์„œ ๊ทธ๋ ค์ค˜", "๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๋„ ๊ทธ๋ ค์ค˜", "์ธํ”„๋ผ ๊ตฌ์„ฑ๋„ ๊ทธ๋ ค์ค˜", "์กฐ์ง๋„ ๊ทธ๋ ค์ค˜", "์—…๋ฌด ์‹œ์Šคํ…œ ๊ด€๊ณ„ ๊ทธ๋ ค์ค˜", "๋ฌธ์„œ ์ง€๋„ ๊ทธ๋ ค์ค˜", "KB ๋ ˆํฌ ๊ทธ๋ ค์ค˜", "๋ฌธ์„œ ๊ตฌ๋ฉ ์ฐพ์•„์ค˜", "์˜ค๋ž˜๋œ ๋ฌธ์„œ ์ฐพ์•„์ค˜", "์ด PR๋กœ ์†๋ด์•ผ ํ•  ๋ฌธ์„œ ์ฐพ์•„์ค˜", "์ฝ”๋“œ ๋ฐ”๋€ ๊ฑธ๋กœ ๋‚ก์€ ๋ฌธ์„œ ๊ณจ๋ผ์ค˜", "์•„ํ‚คํ…์ฒ˜ ๊ทธ๋ฆผ ํ•ฉ์ณ์ค˜" | `architecture` ์Šคํ‚ฌ ์‚ฌ์šฉ | ๋งฅ๋ฝ ์†Œ์Šค ์ฐพ๊ธฐ โ†’ ์ฝ๊ธฐ ์ „์šฉ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ โ†’ ํƒ์ƒ‰ โ†’ IR validate โ†’ ๋ฏธํ•ด๊ฒฐ ์งˆ๋ฌธ โ†’ render. ๋ฌธ์„œ ๋ ˆํฌ๋Š” scan_docs โ†’ link_docs โ†’ render. ์„ค๊ณ„ ๋ฆฌ๋ทฐ๋‚˜ ์ž๋ฌธ์ด๋ฉด `architect` |
81
81
  | "์„ฑ๊ณผ ๋ณด๊ณ ์„œ", "์„ฑ๊ณผ ๋ถ„์„", "๋ถ„๊ธฐ ๋ฆฌํฌํŠธ", "๋ถ„๊ธฐ ๋ณด๊ณ ", "KPI ๋ฆฌํฌํŠธ", "์ œ์•ˆ์„œ ์ž‘์„ฑ", "์ œ์•ˆ์„œ ์จ์ค˜", "RFC ์จ์ค˜", "RFC ์ž‘์„ฑ", "์˜์‚ฌ๊ฒฐ์ • ๋ฉ”๋ชจ", "ํšŒ๊ณ  ์ •๋ฆฌ", "ํšŒ๊ณ  ์จ์ค˜", "๊ฒฝ์˜์ง„ ๋ณด๊ณ  ์ž๋ฃŒ", "์„ฑ๊ณผ ๋ฌธ์„œ", "์ด ๋ฌธ์„œ ๋‹ค์‹œ ์จ์ค˜", "๋ณด๊ณ ์„œ ๋ณด์™„" | `brief` ์Šคํ‚ฌ ์‚ฌ์šฉ | |
82
82
  | "orca๋กœ ์‹คํ–‰", "orca๋กœ ๋ณ‘๋ ฌ", "์›Œ์ปค๋กœ ๋ฟŒ๋ ค", "ํ„ฐ๋ฏธ๋„๋กœ ๋ฟŒ๋ ค", "๋ณ‘๋ ฌ ๋””์ŠคํŒจ์น˜", "๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋กœ ์‹คํ–‰", "codex๋กœ ์‹คํ–‰", "์›Œ์ปค ๋„์›Œ์„œ ์‹คํ–‰" | `dispatch` ์Šคํ‚ฌ ์‚ฌ์šฉ | ๋Ÿฐํƒ€์ž„ ๊ฐ์ง€ โ†’ ๊ฐ™์€ ์›ŒํฌํŠธ๋ฆฌ์— ํ„ฐ๋ฏธ๋„ โ†’ worker_done ๋Œ€๊ธฐ โ†’ ready ์žฌ๊ณ„์‚ฐ. ๋Ÿฐํƒ€์ž„ ์—†์œผ๋ฉด execute์˜ ๊ธฐ๋ณธ ๋ณ‘๋ ฌ ๊ฒฝ๋กœ |
83
+ | "doubt", "์˜์‹ฌํ•ด์ค˜", "๋ฐ˜๋ฐ•ํ•ด์ค˜", "๋ฐ˜๋ฐ•๋ถ€ํ„ฐ ๋ฐ›์•„", "๋ฐ˜๋ก ๋ถ€ํ„ฐ ๋“ค์–ด๋ณด์ž", "์ด ๊ฒฐ์ • ์˜์‹ฌ", "๋˜๋Œ๋ฆฌ๊ธฐ ์–ด๋ ค์šด ์ž‘์—… ์ „์—" | `doubt` ์Šคํ‚ฌ ์‚ฌ์šฉ | ์ž๋™์œผ๋กœ๋Š” ๋˜๋Œ๋ฆฌ๊ธฐ ์–ด๋ ค์šด ์ž‘์—…(๋ฐฐํฌ, ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ๊ณต๊ฐœ API ๋ณ€๊ฒฝ), ๋ณด์•ˆ ์„ฑ์งˆ ์ฃผ์žฅ, ๋‚ฏ์„  ์ฝ”๋“œ์—์„œ ๋ถ„๊ธฐ ๋กœ์ง์„ ๋ฐ”๊ฟ€ ๋•Œ๋งŒ ๋„์šด๋‹ค. ๊ฒฐ์ •๋งˆ๋‹ค ๋„์šฐ์ง€ ์•Š๋Š”๋‹ค. ์„œ๋ธŒ์—์ด์ „ํŠธ ์•ˆ์—์„œ๋Š” ์“ฐ์ง€ ์•Š๊ณ  ๋ฉ”์ธ ์„ธ์…˜์— ์˜ฌ๋ฆฐ๋‹ค. ๋‹ค ๋งŒ๋“  ๋’ค ํŒ์ •์€ `continuity-judge`, PR ๋‹จ์œ„ ๊ฒ€ํ† ๋Š” `review` |
83
84
  | "์„ค๋ช…ํ•ด์ค˜", "์‰ฝ๊ฒŒ ํ’€์–ด์ค˜", "ํ’€์–ด์„œ ์„ค๋ช…", "์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ", "์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด", "์ด๊ฑฐ ๋ญ์•ผ", "์ด ์—๋Ÿฌ ๋ญ์•ผ", "๋ฌด์Šจ ๋œป์ด์•ผ", "ELI5", "ํ•œํ…Œ ์„ค๋ช…ํ•ด์ค˜", "์—๊ฒŒ ์„ค๋ช…ํ•ด์ค˜", "๊ธฐํšํŒ€ํ•œํ…Œ", "๋น„๊ฐœ๋ฐœ์žํ•œํ…Œ", "๊ฒฝ์˜์ง„ ๋ณด๊ณ ์šฉ์œผ๋กœ ์„ค๋ช…" | `explain` ์Šคํ‚ฌ ์‚ฌ์šฉ | ์†Œ์Šค ํ™•๋ณด โ†’ ๋Œ€์ƒ ํ™•์ • โ†’ explainer ์œ„์ž„ โ†’ explain-check โ†’ ์žฌ์‹œ๋„. ์„ค๋ช… ๋ฌธ์žฅ๋งŒ ๋น ๋ฅด๊ฒŒ ํ•„์š”ํ•˜๋ฉด `explainer` ์—์ด์ „ํŠธ |
84
85
  | "handoff", "ํ•ธ๋“œ์˜คํ”„", "ํ•ธ๋“œ์˜ค๋ฒ„", "์–ด๋””์— ๋งก๊ธธ์ง€", "์„œ๋ธŒ์—์ด์ „ํŠธ๋กœ ๋งก๊ฒจ", "์›ŒํฌํŠธ๋ฆฌ๋กœ ๋„˜๊ฒจ", "ํ•˜์œ„ ์›ŒํฌํŠธ๋ฆฌ๋กœ", "๋…๋ฆฝ ์›ŒํฌํŠธ๋ฆฌ๋กœ" | `handoff` ์Šคํ‚ฌ ์‚ฌ์šฉ | ๋งก๊ธธ ๊ณณ ๊ณ ๋ฅด๊ธฐ(๋ฉ”์ธ, ์„œ๋ธŒ์—์ด์ „ํŠธ, ํ•˜์œ„ ์›ŒํฌํŠธ๋ฆฌ, ๋…๋ฆฝ ์›ŒํฌํŠธ๋ฆฌ) โ†’ model๊ณผ effort ์Œ โ†’ ์ง€์‹œ์„œ โ†’ ์˜ค๋ฅด์นด ๋˜๋Š” Agent ๋„๊ตฌ๋กœ ์œ„์ž„. ๊ฐ™์€ ๋ธŒ๋žœ์น˜ ๋ณ‘๋ ฌ ์ชผ๊ฐœ๊ธฐ๋Š” `dispatch` |
85
86
  | "์ง€๋ผ ํ‹ฐ์ผ“", "์ง€๋ผ ์ด์Šˆ", "ํ‹ฐ์ผ“ ๋งŒ๋“ค์–ด", "ํ‹ฐ์ผ“ ์ƒ์„ฑ", "์ด์Šˆ ๋งŒ๋“ค์–ด", "์ด์Šˆ ์ƒ์„ฑ", "์ง€๋ผ์— ์˜ฌ๋ ค", "์ง€๋ผ์— ๋“ฑ๋ก", "๋ฐฑ๋กœ๊ทธ์— ์ถ”๊ฐ€", "jira ํ‹ฐ์ผ“", "jira ์ด์Šˆ", "create jira" | `jira-create` ์Šคํ‚ฌ ์‚ฌ์šฉ | ๋‚ด๋ถ€์ ์œผ๋กœ jira-writer ๊ตฌ์กฐํ™” โ†’ ํ”„๋กœ์ ํŠธยทํ•„๋“œ ํ™•์ • โ†’ ์Šน์ธ ๋‹จ๊ณ„ โ†’ createJiraIssue |
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent
3
3
  version: "1.0.0"
4
- description: "Invoke a Gestalt agent directly for any task โ€” no pipeline required. Use this only when no dedicated skill covers the task. If one does (review, pr, brief, presentation, jira-create, slack-send), use that skill instead โ€” they add approval gates and output handling this skill does not."
4
+ description: "์ „์šฉ ์Šคํ‚ฌ์ด ์—†๋Š” ์ผ์— Gestalt ์—์ด์ „ํŠธ ํ•˜๋‚˜๋ฅผ ์ด๋ฆ„์œผ๋กœ ๋ถˆ๋Ÿฌ ํŒŒ์ดํ”„๋ผ์ธ ์—†์ด ๋ฐ”๋กœ ๋งก๊ธด๋‹ค(architect ๊ฐ™์€ ์—์ด์ „ํŠธ์—๊ฒŒ ์ง์ ‘ ๋ฌป๊ธฐ). ์ „์šฉ ์Šคํ‚ฌ(review, pr, brief, presentation, jira-create, slack-send)์ด ์žˆ๋Š” ์ผ์ด๋ฉด ๊ทธ ์Šคํ‚ฌ์„ ์“ด๋‹ค. ์ด ์Šคํ‚ฌ์—๋Š” ์—†๋Š” ์Šน์ธ ๋‹จ๊ณ„์™€ ์‚ฐ์ถœ๋ฌผ ์ฒ˜๋ฆฌ๊ฐ€ ๊ทธ์ชฝ์— ์žˆ๋‹ค."
5
5
  triggers:
6
6
  - "agent"
7
7
  - "use agent"
@@ -114,6 +114,9 @@ Step 0 ์ „์— ๋‘ ๊ฐ€์ง€๋ฅผ ์ •ํ•œ๋‹ค. ๋Œ€์ƒ์— ๋งž๋Š” ์–ดํœ˜ ํŒฉ๊ณผ ์งˆ๋ฌธ์—
114
114
  | ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์„œ ์™€์„œ ์–ด๋””๋กœ ๊ฐ€๋‚˜ | `dataflow` ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ |
115
115
  | ๋‘˜์ด ๋ฌด์—‡์ด ๊ฐ™๊ณ  ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€ | `compare` ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ |
116
116
  | ์ƒํƒœ๋‚˜ ๋‹จ๊ณ„, ์—…๋ฌด ์ ˆ์ฐจ | `flows` ([Step 3.5](#step-35--๋„๋ฉ”์ธ-ํ๋ฆ„)) |
117
+ | ํ•œ ๋Œ€์ƒ์ด ์–ด๋–ค ์ƒํƒœ๋ฅผ ๊ฑฐ์ณ ์–ด๋””์„œ ๋๋‚˜๋‚˜ | `flows`๋ฅผ ๋จผ์ € ์“ฐ๊ณ  ๊ทธ ์œ„์— `lifecycle` ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ |
118
+ | ๊ณ ๊ฐ์ด ํ•œ ๊ฑธ์Œ ๊ฐˆ ๋•Œ ๋’ค์—์„œ ๋ฌด์—‡์ด ์ผํ•˜๋‚˜ | `flows`๋ฅผ ๋จผ์ € ์“ฐ๊ณ  ๊ทธ ์œ„์— `blueprint` ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ |
119
+ | ํ…Œ์ด๋ธ”๋ผ๋ฆฌ ์–ด๋–ค ์ปฌ๋Ÿผ์œผ๋กœ ๋ฌถ์ด๋‚˜ | `db_table`์— `columns`๋ฅผ ๋จผ์ € ์“ฐ๊ณ  ๊ทธ ์œ„์— `er` ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ |
117
120
  | ๋ถ„๋ช…ํ•˜์ง€ ์•Š๋‹ค | ์ง€๋„๋ฅผ ๊ทธ๋ฆฌ๊ณ  Step 8 ๋ณด๊ณ ์—์„œ ํฌ์ปค์Šค ์“ฐ๋Š” ๋ฒ•์„ ์•ˆ๋‚ดํ•œ๋‹ค |
118
121
 
119
122
  - ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์€ ์ง€๋„ ์œ„์— ์–น๋Š”๋‹ค. ์ง€๋„๋ฅผ ๋จผ์ € ๊ทธ๋ฆฐ๋‹ค. ๋‹ต์— ํ•„์š”ํ•œ ์‚ฌ์‹ค์ด ์ง€๋„์— ์—†์œผ๋ฉด ๋จผ์ € ํƒ์ƒ‰ํ•ด ๊ทผ๊ฑฐ์™€ ํ•จ๊ป˜ `nodes`์™€ `edges`์— ๋„ฃ๋Š”๋‹ค. ๊ทธ๋‹ค์Œ์— ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์—์„œ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ๋๋‚ด ๋ชป ์ฐพ์€ ์‚ฌ์‹ค์€ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ๋ฏธํ•ด๊ฒฐ ์งˆ๋ฌธ์œผ๋กœ ๋‚จ๊ธด๋‹ค.
@@ -262,6 +265,7 @@ Step 0 ์ „์— ๋‘ ๊ฐ€์ง€๋ฅผ ์ •ํ•œ๋‹ค. ๋Œ€์ƒ์— ๋งž๋Š” ์–ดํœ˜ ํŒฉ๊ณผ ์งˆ๋ฌธ์—
262
265
  - `repo`๋Š” ํด๋ผ์šฐ๋“œ ์กฐํšŒ์šฉ ๊ฐ€์งœ ๋ ˆํฌ id๋กœ ๋‘๊ณ  label์€ `<์—”์ง„>:<ํด๋Ÿฌ์Šคํ„ฐ ์‹๋ณ„์ž>` ๊ผด(`aurora-mysql:<์‹๋ณ„์ž>`, `redis:<์‹๋ณ„์ž>`)๋กœ ์“ด๋‹ค. ๋‹ค๋ฅธ ๋ถ„์„๊ณผ ํ•ฉ์น  ๋•Œ ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ•œ ๋…ธ๋“œ๋กœ ๋ชจ์ด๋Š” ๊ธฐ์ค€์ด ์ด label์ด๋‹ค.
263
266
  - `engine`์— ์—”์ง„ ์ด๋ฆ„(`mysql`, `postgresql`, `redis`, `elasticsearch`, `mongodb`, `documentdb`, `dynamodb`, `mariadb`)์„ ๋‹จ๋‹ค. ์นด๋“œ์— ๊ทธ ์—”์ง„ ๋กœ๊ณ ๊ฐ€ ์„ ๋‹ค. Aurora MySQL์€ `mysql`, ElastiCache Redis๋Š” `redis`๋‹ค. ์•ˆ ๋‹ฌ๋ฉด label ์•ž๋ถ€๋ถ„์œผ๋กœ ์ฐพ์ง€๋งŒ label์„ ๋‹ค๋ฅด๊ฒŒ ์ ์œผ๋ฉด ๋กœ๊ณ ๊ฐ€ ์•ˆ ๋ถ™๋Š”๋‹ค.
264
267
  - **id์—๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์‹๋ณ„์ž์™€ ๊ณ„์ • ID๋ฅผ ๋„ฃ์ง€ ์•Š๋Š”๋‹ค.** `ds:redis-common`์ฒ˜๋Ÿผ ๋ณ„์นญ์œผ๋กœ ์ง“๋Š”๋‹ค.
268
+ - ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ฌป๋Š” ์งˆ๋ฌธ์ด ์žˆ์„ ๋•Œ๋งŒ `db_table`์— `columns`๋ฅผ ๋‹จ๋‹ค. ์ถœ์ฒ˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ(`CREATE TABLE`, `ALTER TABLE ... ADD CONSTRAINT`), ORM ์—”ํ‹ฐํ‹ฐ(JPA `@Entity`, TypeORM, Prisma `schema.prisma`, Django ๋ชจ๋ธ), ์Šคํ‚ค๋งˆ ๋คํ”„ ํŒŒ์ผ์ด๋‹ค. ์ปฌ๋Ÿผ ํ•˜๋‚˜๋Š” `{ name, type?, pk?, nullable?, unique?, references?, evidence? }`์ด๊ณ  ์™ธ๋ž˜ ํ‚ค๋Š” `references: { table, column?, onDelete? }`์— ๋Œ€์ƒ `db_table` id๋กœ ์ ๋Š”๋‹ค. ์™ธ๋ž˜ ํ‚ค ์ปฌ๋Ÿผ์—๋Š” ๊ทธ ์ œ์•ฝ์„ ์ ์€ ์ค„์„ `evidence`๋กœ ๋‹จ๋‹ค. ๊ทผ๊ฑฐ๊ฐ€ ์—†์œผ๋ฉด ์„ ์ด ์•ˆ ๊ทธ๋ ค์ง€๊ณ  `auto:fk:` ์งˆ๋ฌธ์ด ์ƒ๊ธด๋‹ค. ์“ฐ์ž„์ƒˆ๋Š” [`references/projections.md`](./references/projections.md)์˜ er ํ•ญ๋ชฉ์— ์žˆ๋‹ค.
265
269
  - `environment`๋ฅผ ๋‹จ๋‹ค. ์ „์ฒด ๊ทธ๋ฆผ์€ prod ๊ธฐ์ค€์ด๋ผ `prod`๊ฐ€ ์•„๋‹Œ ์ €์žฅ์†Œ๋Š” ์ „์ฒด ๊ทธ๋ฆผ์—์„œ ๋น ์ง€๊ณ  ์•„๋ž˜ ๋ ˆ๋ฒจ์—์„œ๋งŒ ๋ณด์ธ๋‹ค. ์กฐํšŒ๋กœ ์ฑ„์šธ ๋•Œ๋„ prod๋ถ€ํ„ฐ ์ฑ„์šด๋‹ค.
266
270
 
267
271
  ### 3-3. `gateway`
@@ -311,6 +315,10 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ฝ์–ด ๋“ค์ด๋Š” ์Šคํ‚ฌ๊ณผ ์—์ด์ „ํŠธ
311
315
  > **์ด ๋‹จ๊ณ„์˜ ์ƒ์„ธ** โ†’ [`references/domain-flow.md`](./references/domain-flow.md)
312
316
  > screen-chain์—์„œ ์ƒํƒœ๋‚˜ ๋‹จ๊ณ„, ์—…๋ฌด ์ ˆ์ฐจ๋ฅผ ๊ทธ๋ฆด ๋•Œ๋งŒ ์ด ํŒŒ์ผ์„ ์ฝ๊ณ  ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์—ด์ง€ ์•Š๊ณ  ๋‹ค์Œ์œผ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
313
317
 
318
+ ํ๋ฆ„ ๊ทธ๋ฆผ์€ ํ–‰์œ„์ž ์ค„ ์œ„์— ๋‹จ๊ณ„๋ฅผ ๋Š˜์–ด๋†“์•„ "๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋‚˜"๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. "์ด ์ฃผ๋ฌธ์€ ์–ด๋–ค ์ƒํƒœ๋ฅผ ๊ฑฐ์ณ ์–ด๋””์„œ ๋๋‚˜๋‚˜"๋ฅผ ๋ฌผ์œผ๋ฉด ๊ฐ™์€ ํ๋ฆ„ ์œ„์— `lifecycle` ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์„ ํ•˜๋‚˜ ๋” ์–น๋Š”๋‹ค. ๋‹จ๊ณ„์˜ `state`๋งŒ ๋ชจ์•„ ์ง„ํ–‰ ๋‹จ๊ณ„, ๋Œ€๊ธฐ์™€ ๋ณต๊ตฌ, ๋ ์ƒํƒœ ์„ธ ๋ ๋กœ ๋‹ค์‹œ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ด๋ผ ๋”ฐ๋กœ ์ ์„ ์‚ฌ์‹ค์ด ์—†๋‹ค. ๋ ๋‹จ๊ณ„์— `outcome`(`done`, `cancel`, `fail`)์„ ๋‹ฌ๋ฉด ๋ ์ƒํƒœ ์นด๋“œ์— ์™„๋ฃŒ, ์ทจ์†Œ, ์‹คํŒจ ๋ฐฐ์ง€๊ฐ€ ๋ถ™๋Š”๋‹ค. ์ƒ์„ธ๋Š” [`references/projections.md`](./references/projections.md)์˜ lifecycle ํ•ญ๋ชฉ์— ์žˆ๋‹ค.
319
+
320
+ "์†๋‹˜์ด ์ค„์„ ์„œ๋Š” ๋™์•ˆ ๋’ค์—์„œ๋Š” ์–ด๋–ค API์™€ ํ…Œ์ด๋ธ”์ด ์ผํ•˜๋‚˜"์ฒ˜๋Ÿผ ๊ณ ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ํ™”๋ฉด ๋’ค๋ฅผ ๋ฌผ์œผ๋ฉด `blueprint`๋ฅผ ์–น๋Š”๋‹ค. ์ •์ƒ ํ๋ฆ„ ๋‹จ๊ณ„๋ฅผ ์—ด๋กœ ์„ธ์šฐ๊ณ  ์œ„์—์„œ ์•„๋ž˜๋กœ ๊ณ ๊ฐ ํ–‰๋™, ํ”„๋ก ํŠธ์Šคํ…Œ์ด์ง€, ๊ฐ€์‹œ์„ , ๋ฐฑ์Šคํ…Œ์ด์ง€, ์ง€์› ์ธต์— ๋‚˜๋ˆ  ๋‹ด๋Š”๋‹ค. ์นธ์€ ๋‹จ๊ณ„์˜ ํ–‰์œ„์ž์™€ `refs`, ๊ฑฐ๊ธฐ์„œ ์ด์–ด์ง€๋Š” ๊ทผ๊ฑฐ ์žˆ๋Š” ์ง€๋„ ์—ฃ์ง€๋กœ๋งŒ ์ฑ„์šด๋‹ค. ๊ทธ๋ž˜์„œ ๋‹จ๊ณ„์— `refs`๋ฅผ ๋‹ฌ์•„ ๋‘ฌ์•ผ ์นธ์ด ์ฐฌ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ•˜๋ฉด `dataflow`, ํ˜ธ์ถœ ์ˆœ์„œ๊ฐ€ ๊ถ๊ธˆํ•˜๋ฉด `sequence`์ด๊ณ  blueprint๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ƒ์„ธ๋Š” [`references/projections.md`](./references/projections.md)์˜ blueprint ํ•ญ๋ชฉ์— ์žˆ๋‹ค.
321
+
314
322
  ## Step 4 โ€” ๋ทฐโ‘ก deploy-path ํƒ์ƒ‰
315
323
 
316
324
  1. **๋ฐฐํฌ ๋‹จ์œ„**: ๋ ˆํฌ๋งˆ๋‹ค ๋ฐฐํฌ๋˜๋Š” ๋‹จ์œ„๋ฅผ ์ •ํ•œ๋‹ค. ๋ชจ๋…ธ๋ ˆํฌ๋ฉด ์•ฑ ํ•˜๋‚˜๊ฐ€ ๋‹จ์œ„๋‹ค.
@@ -456,6 +464,9 @@ FE๊ฐ€ ๋ถ€๋ฅด๋Š” BE ๋ ˆํฌ๋‚˜ ๋ฐฐํฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ ˆํฌ์ฒ˜๋Ÿผ ์ง€๊ธˆ ๋ ˆํฌ
456
464
  - ์ถœ์ฒ˜๊ฐ€ ์ด๋ฏธ ์žˆ๋Š” ๋…ธ๋“œ๋Š” ๊ฑฐ๊ธฐ์„œ ๊ฐ€์ ธ์™€ ํ•œ ์ค„๋กœ ์ค„์ธ๋‹ค. ์Šคํ‚ฌ์€ SKILL.md ํ”„๋ŸฐํŠธ๋งคํ„ฐ์˜ `description`, MCP ๋„๊ตฌ๋Š” ๋„๊ตฌ ๋“ฑ๋ก์˜ description, ์—์ด์ „ํŠธ๋Š” AGENT.md์˜ `description`์ด๋‚˜ ์ฒซ ๋ฌธ๋‹จ์ด๋‹ค. ํŠธ๋ฆฌ๊ฑฐ ๋ฌธ๊ตฌ๋‚˜ ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ๊ฑท์–ด๋‚ด๊ณ  ํ•˜๋Š” ์ผ๋งŒ ๋‚จ๊ธด๋‹ค.
457
465
  - ์ถœ์ฒ˜๊ฐ€ ์—†์œผ๋ฉด ์ฝ”๋“œ์—์„œ ์ฝ์€ ๋Œ€๋กœ ์“ด๋‹ค. ํ™”๋ฉด์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฐ๊ธฐ์„œ ํ•˜๋Š” ์ผ, API๋Š” ๋ฌด์—‡์„ ๋Œ๋ ค์ฃผ๊ฑฐ๋‚˜ ๋ฐ”๊พธ๋Š”์ง€, ํ…Œ์ด๋ธ”์€ ๋ฌด์—‡์„ ๋‹ด๋Š”์ง€๋‹ค.
458
466
  - ๋นˆ ์ฑ„๋กœ ๋‘๋ฉด validate๊ฐ€ `warnings`์— `NODE_DESCRIPTION_MISSING`์„ ์‹ฃ๋Š”๋‹ค. ์—๋Ÿฌ๊ฐ€ ์•„๋‹ˆ๋ผ render๋Š” ๋ง‰์ง€ ์•Š๋Š”๋‹ค. ๊ฒฝ๊ณ ์— ์‹ค๋ฆฐ `nodeIds`๋ฅผ ์ฑ„์›Œ ๋‹ค์‹œ validateํ•œ๋‹ค.
467
+ - ์ƒํƒœ ํ๋ฆ„ ๊ทธ๋ฆผ์ด ํ•œ ์žฅ์— ์ฝํžˆ๋Š” ์–‘์„ ๋„˜์œผ๋ฉด `warnings`์— `LIFECYCLE_OVER_BUDGET`์ด ์‹ค๋ฆฐ๋‹ค. ์ด๊ฒƒ๋„ render๋ฅผ ๋ง‰์ง€ ์•Š๋Š”๋‹ค. ๊ฒฝ๊ณ ์˜ `counts`๋ฅผ ๋ณด๊ณ  ์„ธ๋ถ€ ์ƒํƒœ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ฑฐ๋‚˜ ํ๋ฆ„์„ ๋‘˜๋กœ ๋‚˜๋ˆˆ๋‹ค.
468
+ - ์„œ๋น„์Šค ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์˜ ๋‹จ๊ณ„ ์—ด์ด 6์„ ๋„˜์œผ๋ฉด `warnings`์— `BLUEPRINT_OVER_BUDGET`์ด ์‹ค๋ฆฐ๋‹ค. render๋Š” ๋ง‰์ง€ ์•Š๋Š”๋‹ค. ๊ฐ™์€ ํ™”๋ฉด์—์„œ ์ด์–ด์ง€๋Š” ๋‹จ๊ณ„๋ฅผ ํ•ฉ์น˜๊ฑฐ๋‚˜ ํ๋ฆ„์„ ๋‚˜๋ˆˆ๋‹ค.
469
+ - ํ…Œ์ด๋ธ” ๊ด€๊ณ„ ๊ทธ๋ฆผ์ด ํ…Œ์ด๋ธ” 5๊ฐœ, ํ•œ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ 8๊ฐœ, ์™ธ๋ž˜ ํ‚ค ์„  6๊ฐœ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋„˜์œผ๋ฉด `warnings`์— `ER_OVER_BUDGET`์ด ์‹ค๋ฆฐ๋‹ค. render๋Š” ๋ง‰์ง€ ์•Š๋Š”๋‹ค. ์งˆ๋ฌธ์— ๊ฑธ๋ฆฐ ํ…Œ์ด๋ธ”๋งŒ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ๊ทธ๋ฆผ์„ ๋‚˜๋ˆˆ๋‹ค.
459
470
 
460
471
  ### ํŽ˜์ด์ง€ ๊ธ€
461
472
 
@@ -537,10 +548,10 @@ FE๊ฐ€ ๋ถ€๋ฅด๋Š” BE ๋ ˆํฌ๋‚˜ ๋ฐฐํฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ ˆํฌ์ฒ˜๋Ÿผ ์ง€๊ธˆ ๋ ˆํฌ
537
548
 
538
549
  ### ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์„ ์–น๋Š”๋‹ค
539
550
 
540
- [๋ชจ์–‘ ๊ณ ๋ฅด๊ธฐ](#๋ชจ์–‘-๊ณ ๋ฅด๊ธฐ)์—์„œ `sequence`, `dataflow`, `compare`๋ฅผ ๊ณจ๋ž์œผ๋ฉด ์ง€๋„๋ฅผ ๋‹ค ์“ด ๋’ค `projections`์— ๊ทธ๋ฆผ์„ ๋‹จ๋‹ค. ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์€ ์ง€๋„์˜ ๋…ธ๋“œ์™€ ์—ฃ์ง€๋ฅผ id๋กœ ๊ฐ€๋ฆฌํ‚ฌ ๋ฟ์ด๋‹ค. ์ƒˆ ์‚ฌ์‹ค์„ ์—ฌ๊ธฐ์— ๋จผ์ € ์ ์ง€ ์•Š๋Š”๋‹ค.
551
+ [๋ชจ์–‘ ๊ณ ๋ฅด๊ธฐ](#๋ชจ์–‘-๊ณ ๋ฅด๊ธฐ)์—์„œ `sequence`, `dataflow`, `compare`, `lifecycle`, `blueprint`, `er`์„ ๊ณจ๋ž์œผ๋ฉด ์ง€๋„๋ฅผ ๋‹ค ์“ด ๋’ค `projections`์— ๊ทธ๋ฆผ์„ ๋‹จ๋‹ค. ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์€ ์ง€๋„์˜ ๋…ธ๋“œ์™€ ์—ฃ์ง€๋ฅผ id๋กœ ๊ฐ€๋ฆฌํ‚ฌ ๋ฟ์ด๋‹ค. ์ƒˆ ์‚ฌ์‹ค์„ ์—ฌ๊ธฐ์— ๋จผ์ € ์ ์ง€ ์•Š๋Š”๋‹ค. `lifecycle`๊ณผ `blueprint`๋Š” ๋…ธ๋“œ ๋Œ€์‹  `flows`์˜ ํ๋ฆ„ ํ•˜๋‚˜๋ฅผ `flow`๋กœ ๊ฐ€๋ฆฌํ‚จ๋‹ค. `er`์€ `participants`์— `db_table` id๋ฅผ ์ ๊ณ  ์„ ์€ ์ปฌ๋Ÿผ์˜ `references`์—์„œ ๋‚˜์˜จ๋‹ค.
541
552
 
542
553
  > **์ด ๋‹จ๊ณ„์˜ ์ƒ์„ธ** โ†’ [`references/projections.md`](./references/projections.md)
543
- > `sequence`, `dataflow`, `compare`๋ฅผ ๊ณจ๋ž์„ ๋•Œ๋งŒ ์ด ํŒŒ์ผ์„ ์ฝ๊ณ  ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์—ด์ง€ ์•Š๊ณ  ๋‹ค์Œ์œผ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
554
+ > `sequence`, `dataflow`, `compare`, `lifecycle`, `blueprint`, `er`์„ ๊ณจ๋ž์„ ๋•Œ๋งŒ ์ด ํŒŒ์ผ์„ ์ฝ๊ณ  ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์—ด์ง€ ์•Š๊ณ  ๋‹ค์Œ์œผ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
544
555
 
545
556
  ### parent๋กœ ํฌํ•จ ๊ด€๊ณ„๋ฅผ ๋‹จ๋‹ค
546
557
 
@@ -575,7 +586,10 @@ FE๊ฐ€ ๋ถ€๋ฅด๋Š” BE ๋ ˆํฌ๋‚˜ ๋ฐฐํฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ ˆํฌ์ฒ˜๋Ÿผ ์ง€๊ธˆ ๋ ˆํฌ
575
586
  ```
576
587
 
577
588
  - ์„ฑ๊ณตํ•˜๋ฉด `{ ok: true, autoUnresolved, drawable }`์ด๋‹ค. `drawable`์— ๋น ์ง„ ๋…ธ๋“œ์™€ ์—ฃ์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์™œ ๋น ์กŒ๋Š”์ง€ `autoUnresolved`์—์„œ ํ™•์ธํ•œ๋‹ค.
578
- - ์„ฑ๊ณตํ•ด๋„ `warnings`๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ์€ `NODE_DESCRIPTION_MISSING` ํ•˜๋‚˜์ด๊ณ  ๊ทธ๋ฆฌ๋Š” ๋…ธ๋“œ ์ค‘ `description`์ด ๋นˆ ๋…ธ๋“œ๋ฅผ `nodeIds`์— ๋ชจ์•„ ์ค€๋‹ค. render๋Š” ๊ทธ๋Œ€๋กœ ๋˜์ง€๋งŒ ๊ทธ ์นด๋“œ์—๋Š” ์„ค๋ช… ์ค„์ด ์—†๋‹ค. [๋…ธ๋“œ ์„ค๋ช…](#๋…ธ๋“œ-์„ค๋ช…)๋Œ€๋กœ ์ฑ„์šด๋‹ค. render ์‘๋‹ต์—๋„ ๊ฐ™์€ `warnings`๊ฐ€ ์‹ค๋ฆฐ๋‹ค.
589
+ - ์„ฑ๊ณตํ•ด๋„ `warnings`๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋А ๊ฒฝ๊ณ ๋„ render๋ฅผ ๋ง‰์ง€ ์•Š๋Š”๋‹ค. ๊ณ ์น˜๋Š” ๋ฒ•์€ [๋…ธ๋“œ ์„ค๋ช…](#๋…ธ๋“œ-์„ค๋ช…)์— ๋ชจ์•„ ๋‘์—ˆ๋‹ค.
590
+ - `NODE_DESCRIPTION_MISSING`์€ ๊ทธ๋ฆฌ๋Š” ๋…ธ๋“œ ์ค‘ `description`์ด ๋นˆ ๋…ธ๋“œ๋ฅผ `nodeIds`์— ๋ชจ์•„ ์ค€๋‹ค. ๊ทธ ์นด๋“œ์—๋Š” ์„ค๋ช… ์ค„์ด ์—†์œผ๋‹ˆ ์ฑ„์šด๋‹ค.
591
+ - ์˜ˆ์‚ฐ ๊ฒฝ๊ณ (`LIFECYCLE_OVER_BUDGET`, `BLUEPRINT_OVER_BUDGET`, `ER_OVER_BUDGET`)์—๋Š” `nodeIds`๊ฐ€ ์—†๋‹ค. ๋„˜์นœ ๊ทธ๋ฆผ์˜ id๋ฅผ `subjectId`์—, ๋„˜์นœ ๊ฐœ์ˆ˜๋ฅผ `counts`์— ๋‹ด๋Š”๋‹ค. ๊ทธ๋ฆผ์„ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ์ค„์ด๋ผ๋Š” ์‹ ํ˜ธ๋‹ค.
592
+ - render ์‘๋‹ต์—๋„ ๊ฐ™์€ `warnings`๊ฐ€ ์‹ค๋ฆฐ๋‹ค. render์—๋Š” `DELTA_OVER_BUDGET`์ด ๋” ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ฝ๋Š” ๋ฒ•์€ [Step 8](#step-8--render์™€-๋ณด๊ณ )์— ์žˆ๋‹ค.
579
593
  - ์‹คํŒจํ•˜๋ฉด `errors[]`์— `code`์™€ `nodeId`๋‚˜ `edgeId`๊ฐ€ ์˜จ๋‹ค. ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ ์—๋Ÿฌ๋ฉด `projectionId`์™€ `messageId`๊ฐ€ ์˜ค๊ณ  ๊ตฌ๊ฐ„ ์—๋Ÿฌ๋ฉด `phaseId`๊ฐ€ ํ•จ๊ป˜ ์˜จ๋‹ค.
580
594
 
581
595
  | ์—๋Ÿฌ ์ฝ”๋“œ | ๊ณ ์น˜๋Š” ๋ฒ• |
@@ -607,7 +621,10 @@ FE๊ฐ€ ๋ถ€๋ฅด๋Š” BE ๋ ˆํฌ๋‚˜ ๋ฐฐํฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ ˆํฌ์ฒ˜๋Ÿผ ์ง€๊ธˆ ๋ ˆํฌ
607
621
  | `PROJECTION_EDGE_NOT_FOUND`, `PROJECTION_EDGE_MISMATCH` | ๋ฉ”์‹œ์ง€ `edge`๋ฅผ ๊ทธ ๋‘ ๋…ธ๋“œ๋ฅผ ์ž‡๋Š” ์ง€๋„ ์—ฃ์ง€๋กœ ๊ณ ์นœ๋‹ค. ๊ทธ๋Ÿฐ ์—ฃ์ง€๊ฐ€ ์—†์œผ๋ฉด ์ง€๋„์— ๋จผ์ € ๋„ฃ๊ฑฐ๋‚˜ `edge`๋ฅผ ๋บ€๋‹ค |
608
622
  | `PROJECTION_BLOCK_NOT_FOUND`, `PROJECTION_BLOCK_SPLIT` | ๋ฉ”์‹œ์ง€ `block`์„ `blocks`์˜ id๋กœ ๊ณ ์น˜๊ณ  ํ•œ ๋ฌถ์Œ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ถ™์—ฌ ์ ๋Š”๋‹ค |
609
623
  | `SOLID_MESSAGE_WITHOUT_EVIDENCE` | ๊ฐ€๋ฆฌํ‚จ ์—ฃ์ง€๋‚˜ ์ž๊ธฐ ๊ทผ๊ฑฐ์— code๋‚˜ spec์ด ์—†๋‹ค. ๊ทผ๊ฑฐ๋ฅผ ์ฐพ์•„ ๋‹ฌ๊ฑฐ๋‚˜ ์ ์„ ์œผ๋กœ ๋ฐ”๊พผ๋‹ค |
610
- | `PROJECTION_EMPTY` | sequence์™€ dataflow์— ๋ฉ”์‹œ์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค. ๋„ฃ์„ ๋ฉ”์‹œ์ง€๊ฐ€ ์—†์œผ๋ฉด ๊ทธ ๊ทธ๋ฆผ์„ ๋บ€๋‹ค |
624
+ | `PROJECTION_EMPTY` | sequence์™€ dataflow์— ๋ฉ”์‹œ์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค. ๋„ฃ์„ ๋ฉ”์‹œ์ง€๊ฐ€ ์—†์œผ๋ฉด ๊ทธ ๊ทธ๋ฆผ์„ ๋บ€๋‹ค. lifecycle์ด๋ฉด ๊ฐ€๋ฆฌํ‚จ ํ๋ฆ„ ๋‹จ๊ณ„์— `state`๋ฅผ ๋‹จ๋‹ค. blueprint๋ฉด ๊ฐˆ๋ฆผ๊ธธ ๋ง๊ณ  ๋‹จ๊ณ„๋ฅผ ํ•˜๋‚˜๋ผ๋„ ๋‘”๋‹ค. er์ด๋ฉด `participants`์— ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋ผ๋„ ๋‘”๋‹ค |
625
+ | `PROJECTION_FLOW_NOT_FOUND` | lifecycle์ด๋‚˜ blueprint์˜ `flow`๋ฅผ `flows`์— ์žˆ๋Š” ํ๋ฆ„ id๋กœ ๊ณ ์นœ๋‹ค. ํ๋ฆ„์ด ์•„์ง ์—†์œผ๋ฉด [Step 3.5](#step-35--๋„๋ฉ”์ธ-ํ๋ฆ„)๋Œ€๋กœ ๋จผ์ € ์“ด๋‹ค |
626
+ | `COLUMN_REFERENCE_NOT_FOUND` | ์ปฌ๋Ÿผ `references.table`์„ ์ง€๋„์— ์žˆ๋Š” `db_table` id๋กœ ๊ณ ์นœ๋‹ค. ๋Œ€์ƒ์ด `columns`๋ฅผ ์ ์—ˆ์œผ๋ฉด `references.column`๋„ ๊ทธ ์•ˆ์˜ ์ด๋ฆ„์ด์–ด์•ผ ํ•œ๋‹ค. ๋Œ€์ƒ ํ…Œ์ด๋ธ”์„ ๋ชป ์ฐพ์•˜์œผ๋ฉด `references`๋ฅผ ๋นผ๊ณ  ์งˆ๋ฌธ์œผ๋กœ ๋‚จ๊ธด๋‹ค |
627
+ | `INVALID_COLUMN_REFERENCE_KIND` | ์™ธ๋ž˜ ํ‚ค๋Š” `db_table`๋งŒ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ €์žฅ์†Œ๋ฅผ ๊ฐ€๋ฆฌ์ผฐ์œผ๋ฉด ๊ทธ ์•ˆ์˜ ํ…Œ์ด๋ธ” ๋…ธ๋“œ๋ฅผ ๋‘๊ณ  ๋‹ค์‹œ ๊ฐ€๋ฆฌํ‚จ๋‹ค |
611
628
  | `PROJECTION_SHAPE_FIELD` | ๋ชจ์–‘์— ์•ˆ ๋งž๋Š” ํ•„๋“œ๋ฅผ ๋บ€๋‹ค. [์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์„ ์–น๋Š”๋‹ค](#์งˆ๋ฌธ๋ณ„-๊ทธ๋ฆผ์„-์–น๋Š”๋‹ค)์˜ ๋ชจ์–‘๋ณ„ ์„ค๋ช…์„ ๋ณธ๋‹ค |
612
629
  | `DUPLICATE_PHASE_ID` | ํ•œ ๊ทธ๋ฆผ ์•ˆ์—์„œ ๊ตฌ๊ฐ„ id๊ฐ€ ๊ฒน์นœ๋‹ค. ๋‹ค์‹œ ์ง“๋Š”๋‹ค |
613
630
  | `PROJECTION_PHASE_MESSAGE_NOT_FOUND` | ๊ตฌ๊ฐ„ `from`์ด๋‚˜ `to`๋ฅผ ๊ทธ ๊ทธ๋ฆผ์˜ ๋ฉ”์‹œ์ง€ id๋กœ ๊ณ ์นœ๋‹ค. ๋‹ค๋ฅธ ๊ทธ๋ฆผ์˜ ๋ฉ”์‹œ์ง€๋Š” ๋ชป ๊ฐ€๋ฆฌํ‚จ๋‹ค |
@@ -653,7 +670,12 @@ render๋Š” validate๋ฅผ ๋‹ค์‹œ ํ•˜๊ณ  ์ด์ „ ์‹คํ–‰ IR๊ณผ ๋ณ‘ํ•ฉํ•ด ๋…ธ๋“œ id๋ฅผ
653
670
  - `sharedHtmlPath`: private ๊ทผ๊ฑฐ์˜ ์œ„์น˜์™€ ์ธ์šฉ์„ ๋นผ๊ณ  ์ถœ์ฒ˜ ์ข…๋ฅ˜๋งŒ ๋‚จ๊ธด ๊ณต์œ ์šฉ. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„˜๊ธธ ๋•Œ๋Š” ์ด ํŒŒ์ผ๋งŒ ๋„˜๊ธด๋‹ค
654
671
  - `irPath`: ๋‹ค์Œ ์‹คํ–‰์˜ ์ถœ๋ฐœ์ 
655
672
  - `levels`: ๋“œ๋ฆด๋‹ค์šด์œผ๋กœ ๊ทธ๋ ธ์„ ๋•Œ๋งŒ ์˜จ๋‹ค. ํ•ญ๋ชฉ๋งˆ๋‹ค `id`, `title`, `nodes`, `edges`๊ฐ€ ์žˆ๋‹ค. `id`๋Š” `root`(์ „์ฒด), `service:<id>`, `feature:<id>`, `server:<id>`, `flow:<id>`, `group:<id>`, `view:<id>` ๊ผด์ด๋‹ค
656
- - `viewPaths`: ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์ด ์žˆ์„ ๋•Œ๋งŒ ์˜จ๋‹ค. ๊ทธ๋ฆผ๋งˆ๋‹ค `.gestalt/architecture/views/<view>.<๊ทธ๋ฆผ id>.json`์— ๊ทธ ๊ทธ๋ฆผ๊ณผ ๊ฐ€๋ฆฌํ‚จ ๋…ธ๋“œ, ์—ฃ์ง€, ์งˆ๋ฌธ๋งŒ ๋”ฐ๋กœ ์ €์žฅํ•œ ๊ฒฝ๋กœ๋‹ค. ๋‹ค๋ฅธ ์„ธ์…˜์ด ์งˆ๋ฌธ ํ•˜๋‚˜์˜ ๋‹ต๋งŒ ์ฝ์–ด ๊ฐˆ ๋•Œ ์ด ํŒŒ์ผ์„ ๊ฑด๋„จ๋‹ค
673
+ - `viewPaths`: ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์ด ์žˆ์„ ๋•Œ๋งŒ ์˜จ๋‹ค. ๊ทธ๋ฆผ๋งˆ๋‹ค `.gestalt/architecture/views/<view>.<๊ทธ๋ฆผ id>.json`์— ๊ทธ ๊ทธ๋ฆผ๊ณผ ๊ฐ€๋ฆฌํ‚จ ๋…ธ๋“œ, ์—ฃ์ง€, ์งˆ๋ฌธ๋งŒ ๋”ฐ๋กœ ์ €์žฅํ•œ ๊ฒฝ๋กœ๋‹ค. lifecycle๊ณผ blueprint๋Š” ๊ฐ€๋ฆฌํ‚จ ํ๋ฆ„(`flow`)์„, er์€ ์™ธ๋ž˜ ํ‚ค ๋Œ€์ƒ ํ…Œ์ด๋ธ”๊ณผ `auto:fk:` ์งˆ๋ฌธ์„ ํ•จ๊ป˜ ์‹ฃ๋Š”๋‹ค. ๋‹ค๋ฅธ ์„ธ์…˜์ด ์งˆ๋ฌธ ํ•˜๋‚˜์˜ ๋‹ต๋งŒ ์ฝ์–ด ๊ฐˆ ๋•Œ ์ด ํŒŒ์ผ์„ ๊ฑด๋„จ๋‹ค
674
+ - `delta`: ์ด์ „ ์‹คํ–‰๊ณผ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ. ๋Š˜ ์˜จ๋‹ค. `status`๋Š” ๋„ท ์ค‘ ํ•˜๋‚˜๋‹ค
675
+ - `no_previous`: ๋น„๊ตํ•  ์ด์ „ ๊ทธ๋ฆผ์ด ์—†๋‹ค. ์ฒ˜์Œ ๊ทธ๋ ธ๊ฑฐ๋‚˜ ์ €์žฅ๋œ ์ด์ „ ๊ทธ๋ฆผ์„ ์ง€๊ธˆ ๊ทœ์น™์œผ๋กœ ์ฝ์ง€ ๋ชปํ–ˆ๋‹ค. ํŒŒ์ผ์„ ์•ˆ ๋งŒ๋“ ๋‹ค
676
+ - `unchanged`: ๊ทธ๋ ค์ง€๋Š” ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ์ด ์ง€๋‚œ๋ฒˆ๊ณผ ๊ฐ™๋‹ค. ์ง€๋‚œ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์€ ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค
677
+ - `created`: ๋ฐ”๋€ ๊ฒŒ ์žˆ์–ด `<view>.delta.html`(๋ณธ์ธ์šฉ)๊ณผ `<view>.delta.shared.html`(๊ณต์œ ์šฉ)์„ ์ผ๋‹ค. `htmlPath`, `sharedHtmlPath`, ๋ณ€๊ฒฝ์–ด๋ณ„ ๊ฑด์ˆ˜ `changes`๊ฐ€ ์˜จ๋‹ค. ๊ทธ๋ฆผ์ด ์ปค์„œ ๋ฐ”๋€ ๊ณณ๊ณผ ๋ฐ”๋กœ ์ด์›ƒ๋งŒ ๊ทธ๋ ธ์œผ๋ฉด `scoped`๋„ ์˜จ๋‹ค. `changes` ํ‚ค๋Š” `ADDED` ์ƒ๊น€, `REMOVED` ๋น ์ง, `CHANGED` ๋ณ€๊ฒฝ, `MOVED` ์ด๋™, `REWIRED` ๋‹ค์‹œ ์ด์Œ์ด๋‹ค. ๊ทธ๋ฆผ ๋ฒ”๋ก€์™€ ๊ฐ™์€ ๋ง๋กœ ๋ณด๊ณ ํ•œ๋‹ค
678
+ - `failed`: ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์„ ๋งŒ๋“ค๋‹ค ์‹คํŒจํ–ˆ๋‹ค. ๋ณธ ๊ทธ๋ฆผ์€ ์ด๋ฏธ ์ €์žฅ๋๊ณ  `message`์— ์›์ธ์ด ์˜จ๋‹ค. ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ ๊ฒฝ๋กœ๋Š” ์˜ค์ง€ ์•Š๋Š”๋‹ค
657
679
 
658
680
  ๊ทธ๋ ค์ง„ `service` ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด HTML ํ•œ ์žฅ ์•ˆ์— ๋ ˆ๋ฒจ์„ ๋‚˜๋ˆ  ๋‹ด๋Š”๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์—†์–ด๋„ `service` ์—†๋Š” ํ๋ฆ„์ด๋‚˜ ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์ด ์žˆ์œผ๋ฉด, ๋˜๋Š” `infra`, `data`, `process` ํŒฉ ๋…ธ๋“œ ์‚ฌ์ด์— parent๊ฐ€ ์žˆ์œผ๋ฉด ๋ ˆ๋ฒจ๋กœ ๋‚˜๋ˆˆ๋‹ค. ๊ทธ ๋ฐ–์—๋Š” `levels` ์—†์ด ํ‰๋ฉด ๊ทธ๋ฆผ ํ•œ ์žฅ์ด๋‹ค. deploy-path๋Š” ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์„ ์–น์ง€ ์•Š์œผ๋ฉด ๋Š˜ ํ‰๋ฉด์ด๋‹ค.
659
681
 
@@ -679,6 +701,10 @@ render๋Š” validate๋ฅผ ๋‹ค์‹œ ํ•˜๊ณ  ์ด์ „ ์‹คํ–‰ IR๊ณผ ๋ณ‘ํ•ฉํ•ด ๋…ธ๋“œ id๋ฅผ
679
701
 
680
702
  Step 4.5์—์„œ ํด๋ผ์šฐ๋“œ๋ฅผ ์กฐํšŒํ–ˆ์œผ๋ฉด ์–ด๋А ํ”„๋กœํ•„๋กœ ์–ธ์ œ ์กฐํšŒํ–ˆ๋Š”์ง€ ์ ๋Š”๋‹ค. ๋งŒ๋ฃŒ๋กœ ์กฐํšŒ๋ฅผ ๋ชป ํ–ˆ์œผ๋ฉด "์žฌ๋กœ๊ทธ์ธ ํ•„์š”"์™€ ๋ณด์—ฌ์ค€ ๋กœ๊ทธ์ธ ๋ช…๋ น ๋ชจ์–‘์„ ์ ๋Š”๋‹ค. ๊ณ„์ • ID๋Š” ๋ณด๊ณ ์— ์ ์–ด๋„ ๋˜์ง€๋งŒ ๊ณต์œ ๋ณธ์ด๋‚˜ ์ปค๋ฐ‹ํ•  ํŒŒ์ผ์—๋Š” ์˜ฎ๊ธฐ์ง€ ์•Š๋Š”๋‹ค.
681
703
 
704
+ **๊ตฌ์กฐ ๋ณ€๊ฒฝ์€ `delta.status`๋Œ€๋กœ ์•Œ๋ฆฐ๋‹ค.** `created`๋ฉด ๋ฐ”๋€ ๊ฑด์ˆ˜๋ฅผ ๋ณ€๊ฒฝ์–ด๋ณ„๋กœ ํ•œ ์ค„์— ์ ๊ณ  ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ ๊ฒฝ๋กœ๋ฅผ ์ค€๋‹ค (์˜ˆ: "์ง€๋‚œ๋ฒˆ๋ณด๋‹ค ์ƒ๊น€ 2, ๋น ์ง 1, ๋‹ค์‹œ ์ด์Œ 1. ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์€ `.gestalt/architecture/screen-chain.delta.html`"). ์ด ๊ทธ๋ฆผ์€ ์ด์ „๊ณผ ์ด๋ฒˆ์„ ๊ฐ™์€ ์ขŒํ‘œ์— ๋‚˜๋ž€ํžˆ ๋†“๊ณ  ๊ฐ€์šด๋ฐ ๋ณ€๊ฒฝ ๋ชฉ๋ก์„ ๋‘”๋‹ค. ๊ณต์œ ํ•  ๋•Œ๋Š” `.delta.shared.html`์„ ๋„˜๊ธด๋‹ค. `scoped`๊ฐ€ ์˜ค๋ฉด ์ „์ฒด ๋ช‡ ๊ฐœ ์ค‘ ๋ช‡ ๊ฐœ๋งŒ ๊ทธ๋ ธ๋Š”์ง€ ๋ง๋ถ™์ธ๋‹ค. `unchanged`๋ฉด "์ง€๋‚œ๋ฒˆ๊ณผ ๊ตฌ์กฐ๊ฐ€ ๊ฐ™๋‹ค" ํ•œ ์ค„์ด๋ฉด ๋œ๋‹ค. `no_previous`๋Š” ๋”ฐ๋กœ ์•Œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์ฒ˜์Œ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ด๋ฉด ๋‹น์—ฐํ•œ ๊ฒฐ๊ณผ๋‹ค. `failed`๋ฉด ๋ณธ ๊ทธ๋ฆผ์€ ์ •์ƒ์œผ๋กœ ๋ณด๊ณ ํ•˜๊ณ  "๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ์€ ๋ชป ๋งŒ๋“ค์—ˆ๋‹ค"์™€ `message`๋ฅผ ํ•œ ์ค„๋กœ ๋ง๋ถ™์ธ๋‹ค. ๋””์Šคํฌ์— ๋‚จ์€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ํŒŒ์ผ์„ ์ด๋ฒˆ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ๊ฑด๋„ค์ง€ ์•Š๋Š”๋‹ค.
705
+
706
+ `warnings`์— `DELTA_OVER_BUDGET`์ด ์˜ค๋ฉด ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ทธ๋ฆผ ํ•œ ์žฅ์— ๋‹ด๊ธฐ์— ๋ณ€๊ฒฝ์ด ๋งŽ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ฆผ์€ ๊ทธ๋Œ€๋กœ ์ผ๋‹ค. ๋ฐ”๋€ ์˜์—ญ์„ ๋‚˜๋ˆ  ๋‹จ๊ณ„๋ณ„๋กœ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๊ถŒํ•œ๋‹ค.
707
+
682
708
  Step 5์—์„œ ๋ ˆํฌ๋ฅผ ์ƒˆ๋กœ ๋ฐ›์•˜์œผ๋ฉด ๋ฌด์—‡์„ ์–ด๋””์— ๋ฐ›์•˜๋Š”์ง€ ํ•œ ์ค„๋กœ ๋ง๋ถ™์ธ๋‹ค (์˜ˆ: "`org/api-server`๋ฅผ `~/.gestalt/architecture/clones/github.com/org/api-server`์— ๋ฐ›์•˜๋‹ค").
683
709
 
684
710
  ## Step 9 โ€” ์žฌ์‹คํ–‰
@@ -28,6 +28,7 @@
28
28
  - **์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ธธ์ด ๋‚˜๋‰˜๋Š” ์ž๋ฆฌ๋Š” ๊ฐˆ๋ฆผ๊ธธ ๋‹จ๊ณ„๋กœ ์ ๋Š”๋‹ค.** `"kind": "decision"`์„ ๋‹ฌ๋ฉด ์นด๋“œ ๋Œ€์‹  ๋งˆ๋ฆ„๋ชจ๋กœ ๊ทธ๋ ค์ง„๋‹ค. ๋‹จ๊ณ„ ์ด๋ฆ„์€ `ํ’ˆ์ ˆ ์ƒํ’ˆ ํฌํ•จ?`์ฒ˜๋Ÿผ ๋ฌป๋Š” ๊ผด๋กœ ์“ฐ๊ณ  ๋‚˜๊ฐ€๋Š” ์ „์ด๋งˆ๋‹ค `condition`์„ ๋‹จ๋‹ค (`์˜ˆ`, `์•„๋‹ˆ์˜ค`). ๊ฐ™์€ ๋†’์ด์˜ ์นด๋“œ๋กœ ๊ฐ€๋Š” ๊ธธ์€ ์˜ค๋ฅธ์ชฝ ๊ผญ์ง“์ ์—์„œ, ์œ„์•„๋ž˜๋กœ ๋‹ค๋ฅธ ๋†’์ด์˜ ์นด๋“œ๋กœ ๊ฐ€๋Š” ๊ธธ์€ ์œ„๋‚˜ ์•„๋ž˜ ๊ผญ์ง“์ ์—์„œ ๋‚˜๊ฐ„๋‹ค. ๊ฐˆ๋ฆผ๊ธธ์€ ํ๋ฆ„์ด ๋๋‚˜๋Š” ์ž๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ์„œ `terminal: true`๋ฅผ ํ•จ๊ป˜ ๋‹ฌ๋ฉด ์Šคํ‚ค๋งˆ ์œ„๋ฐ˜์ด๋‹ค. validate๋Š” ๋‚˜๊ฐ€๋Š” ๊ธธ์ด ํ•˜๋‚˜๋ฟ์ธ ๊ฐˆ๋ฆผ๊ธธ์— `auto:branch`๋ฅผ, ๊ทผ๊ฑฐ๋Š” ์žˆ๋Š”๋ฐ `condition`๋„ `label`๋„ ์—†๋Š” ๋‚˜๊ฐ€๋Š” ์ „์ด์— `auto:condition` ์งˆ๋ฌธ์„ ๋‚จ๊ธด๋‹ค.
29
29
  - **๋˜๋Œ๋ฆฌ๊ธฐ์™€ ์ •์ •์€ ๋‹จ๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ ์ „์ด๋กœ ์ ๋Š”๋‹ค.** ์ƒˆ ์ƒํƒœ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๊ณ  ์•ž ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€๊ธฐ๋งŒ ํ•ด์„œ๋‹ค. "๋˜๋Œ๋ฆฌ๊ธฐ" ์นด๋“œ๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ๋ง๊ณ  `๋งค์žฅ ์ทจ์†Œ โ†’ ํ˜ธ์ถœ`์ฒ˜๋Ÿผ ๋Œ์•„๊ฐ€๋Š” ํ™”์‚ดํ‘œ ํ•˜๋‚˜๋กœ ์“ด๋‹ค. ๋ˆ„๋ฅธ ๊ฒƒ๊ณผ ์กฐ๊ฑด์€ ๋‚˜๋ˆ  ์ ๋Š”๋‹ค (`"trigger": "๋˜๋Œ๋ฆฌ๊ธฐ", "condition": "30๋ถ„ ์ด๋‚ด"`). ๊ทธ๋ฆผ์—์„œ๋Š” ๋‘ ์นด๋“œ ๊ฐ€๊นŒ์ด๋กœ ์ง€๋‚˜๊ฐ€๋Š” ๋‘ฅ๊ทผ ์„ ์— โ†ฉ ํ‘œ์‹œ๊ฐ€ ๋ถ™๋Š”๋‹ค.
30
30
  - **ํ๋ฆ„์ด ๋๋‚˜๋Š” ๋‹จ๊ณ„์—๋Š” `"terminal": true`๋ฅผ ๋‹จ๋‹ค.** ์ฐฉ์„, ์ทจ์†Œ, ๋งŒ๋ฃŒ์ฒ˜๋Ÿผ ๋” ๊ฐˆ ๊ณณ์ด ์—†๋Š” ๋‹จ๊ณ„๋‹ค. ๋‚˜๊ฐ€๋Š” ์ „์ด๊ฐ€ ์—†๋Š”๋ฐ ์ด ํ‘œ์‹œ๋„ ์—†์œผ๋ฉด validate๊ฐ€ `auto:dead-end` ์งˆ๋ฌธ์„ ๋‚จ๊ธด๋‹ค. ๋ฏธ๋ฃจ๊ธฐ์ฒ˜๋Ÿผ ๋‹ค์‹œ ์ค„๋กœ ๋Œ์•„๊ฐ€๋Š” ๋‹จ๊ณ„๊ฐ€ ์„ ์„ ๋น ๋œจ๋ ธ์„ ๋•Œ ๊ทธ๋ฆผ์ด ๊ฑฐ๊ธฐ์„œ ๋๋‚œ ๊ฒƒ์ฒ˜๋Ÿผ ์ฝํžˆ๋Š” ๊ฑธ ๋ง‰์œผ๋ ค๋Š” ํ‘œ์‹œ๋‹ค. ๊ทธ ์งˆ๋ฌธ์ด ๋œจ๋ฉด ๋ ๋‹จ๊ณ„๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ด์–ด์ง€๋Š” ์ „์ด๋ฅผ ์ฝ”๋“œ์—์„œ ๋จผ์ € ์ฐพ๋Š”๋‹ค. ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ทจ์†Œ์ฒ˜๋Ÿผ ๋ ๋‹จ๊ณ„์—์„œ ๋‚˜๊ฐ€๋Š” ์ „์ด๊ฐ€ ์žˆ์–ด๋„ ๋œ๋‹ค.
31
+ - **๋ ๋‹จ๊ณ„์—๋Š” ์–ด๋–ป๊ฒŒ ๋๋‚ฌ๋Š”์ง€๋ฅผ `outcome`์œผ๋กœ ๋‹จ๋‹ค.** ์ •์ƒ ์™„๋ฃŒ๋Š” `done`, ์‚ฌ์šฉ์ž๋‚˜ ๋งค์žฅ์ด ๊ทธ๋งŒ๋‘” ๊ฑด `cancel`, ๋งŒ๋ฃŒ๋‚˜ ์˜ค๋ฅ˜๋กœ ๋๋‚œ ๊ฑด `fail`์ด๋‹ค. `terminal: true` ์—†์ด `outcome`๋งŒ ๋‹ฌ๋ฉด ์Šคํ‚ค๋งˆ ์œ„๋ฐ˜์ด๋‹ค. ํ๋ฆ„ ๊ทธ๋ฆผ์€ ์ด ๊ฐ’์„ ์•ˆ ์“ฐ๊ณ  [lifecycle ์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ](./projections.md)์ด ๋ ์ƒํƒœ ์นด๋“œ ๋ฐฐ์ง€๋กœ ์“ด๋‹ค. ์ƒํƒœ ํ๋ฆ„ ๊ทธ๋ฆผ์„ ์–น์„ ๊ฑฐ๋ฉด ๋ ๋‹จ๊ณ„์—๋„ `state`๋ฅผ ๋‹จ๋‹ค.
31
32
  - **์ •์ •๋„ ๊ฐ™๋‹ค.** ์ž๋™ ๋…ธ์‡ผ๋ฅผ ์ฐฉ์„์œผ๋กœ ๊ณ ์น˜๋Š” "๋…ธ์‡ผ ์ •์ •"์€ `์ž๋™ ๋…ธ์‡ผ โ†’ ์ฐฉ์„` ์ „์ด์— `actors: ["ops"]`๋‹ค. ์„ค๋ช…์— ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์—ฌ๋Ÿฟ ์ ํ˜€ ์žˆ์œผ๋ฉด (์ฐฉ์„์ด๋‚˜ ๊ณ ๊ฐ ์ทจ์†Œ) ์ „์ด๋„ ๊ทธ๋งŒํผ ๊ธ‹๋Š”๋‹ค. validate๊ฐ€ ์ด๋Ÿฐ ๋‹จ๊ณ„๋ฅผ ์ฐพ์•„ `auto:as-transition` ์งˆ๋ฌธ์„ ๋‚จ๊ธด๋‹ค. ๊ฒฐ์ œ์ฒ˜๋Ÿผ ํ™”๋ฉด์ด ๋”ฐ๋กœ ์žˆ์–ด `refs`๋กœ ๊ฑด๋„ˆ๊ฐˆ ์ผ์ด ์žˆ๋Š” ๋‹จ๊ณ„๋Š” ์นด๋“œ๋กœ ๋‘ฌ๋„ ๋œ๋‹ค.
32
33
  - **ํ–‰์œ„์ž๊ฐ€ ํ•œ ๋ช…์ด์–ด๋„ ๋œ๋‹ค.** ์†๋‹˜ ํ˜ผ์ž ํ™”๋ฉด์„ ๋„˜๊ธฐ๋Š” ํ๋ฆ„์ด๋ฉด `actors`์— ํ•˜๋‚˜๋งŒ ์ ๋Š”๋‹ค. ๊ทธ๋•Œ๋Š” ์ค„์„ ๊ฐ€๋ฅผ ์ผ์ด ์—†์–ด ์™ผ์ชฝ ํ–‰์œ„์ž ๋จธ๋ฆฌ ์นธ์„ ๊ฑท๊ณ  ๊ทธ๋ฆผ ๋งจ ์œ„ ๋ ์— ํ–‰์œ„์ž ์นฉ ํ•˜๋‚˜๋งŒ ์„ธ์šด๋‹ค.
33
34
  - **์—ฌ๋Ÿฌ ํ–‰์œ„์ž๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ „์ด์—๋Š” `actors`๋ฅผ ๋‹จ๋‹ค.** ๋˜๋Œ๋ฆฌ๊ธฐ๋ฅผ ์†๋‹˜๋„ ๋งค์žฅ๋„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด `"actors": ["guest", "staff"]`๋‹ค. ์„  ๊ธ€์ž ์˜†์— ํ–‰์œ„์ž ์ด๋ฆ„์ด ๋ถ™๋Š”๋‹ค. ํ–‰์œ„์ž ์ค„์€ ๊ทธ ์‚ฌ๋žŒ์ด ํ•˜๋Š” ์ผ์„ ๋†“๋Š” ์ž๋ฆฌ๋ผ, ์—ฌ๋Ÿฟ์ด ํ•˜๋Š” ๋™์ž‘์„ ํ•œ ์ค„์— ๋‹จ๊ณ„๋กœ ๋„ฃ์œผ๋ฉด ํ‹€๋ฆฐ ๊ทธ๋ฆผ์ด ๋œ๋‹ค.
@@ -27,5 +27,61 @@
27
27
  - ์•ˆ ์ ์œผ๋ฉด render๊ฐ€ ์•Œ์•„์„œ ์ž๋ฅธ๋‹ค. ๋งจ ์œ„ ์ฐธ์—ฌ์ž๊ฐ€ ์ง€๊ธˆ ๊ตฌ๊ฐ„์—์„œ ์ฒ˜์Œ ๋งŒ๋‚˜๋Š” ๋Œ€์ƒ์„ ๋ถ€๋ฅด๋Š” ์ž๋ฆฌ์—์„œ ์ƒˆ ๊ตฌ๊ฐ„์ด ์—ด๋ฆฌ๊ณ  ๊ตฌ๊ฐ„ ์ด๋ฆ„์€ ๊ทธ ๋Œ€์ƒ์˜ ํ‘œ์‹œ ์ด๋ฆ„์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋“  ํ˜ธ์ถœ์ด ํ•œ ์ง„์ž…์ ์„ ๊ฑฐ์น˜๋Š” ํ๋ฆ„์€ ๊ตฌ๊ฐ„ ํ•˜๋‚˜๋กœ ๋ญ‰์นœ๋‹ค. ์„ธ์…˜ ๋ชจ๋ธ์ด๋‚˜ ์Šคํ‚ฌ ํ•˜๋‚˜๊ฐ€ ๋ชจ๋“  ํ˜ธ์ถœ์„ ๋‚ด๋ณด๋‚ด๋Š” ํ•˜๋„ค์Šค ์ˆœ์„œ๋„๊ฐ€ ๊ทธ๋ ‡๋‹ค. ๊ฐ™์€ ๋Œ€์ƒ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์˜ค๊ฐ€๋Š” ํ๋ฆ„์€ ๊ฐ™์€ ์ด๋ฆ„ ๊ตฌ๊ฐ„์ด ๋˜ํ’€์ด๋œ๋‹ค. ์ด๋Ÿฐ ํ๋ฆ„๊ณผ ์ฐธ์—ฌ์ž๊ฐ€ ๋งŽ์€ ์ˆœ์„œ๋„์—๋Š” `phases`๋ฅผ ์ ๋Š”๋‹ค.
28
28
  - **dataflow**: `messages`๋งŒ ์“ด๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์˜ฎ๊ฒจ ๊ฐ€๋Š” ๊ฒƒ ํ•˜๋‚˜๊ฐ€ ๋ฉ”์‹œ์ง€ ํ•˜๋‚˜๋‹ค. `blocks`์™€ ๋ฉ”์‹œ์ง€์˜ `reply`, `block`, `branch`๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
29
29
  - **compare**: `messages`๋Š” ๋นˆ ๋ฐฐ์—ด๋กœ ๋‘๊ณ  `sides`์— ๊ฒฌ์ค„ ๋‘ ๋ฌถ์Œ์„ ์ ๋Š”๋‹ค. `{ id, label, nodes[] }` ๋‘˜์ด๊ณ  id๋Š” ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆผ์€ "์ฒซ ๋ฌถ์Œ์—๋งŒ", "๋‘˜ ๋‹ค", "๋‘˜์งธ ๋ฌถ์Œ์—๋งŒ" ์„ธ ์—ด๋กœ ์„ ๋‹ค.
30
+ - **lifecycle**: `messages`๋Š” ๋นˆ ๋ฐฐ์—ด๋กœ ๋‘๊ณ  `flow`์— `flows`์˜ ํ๋ฆ„ id ํ•˜๋‚˜๋ฅผ ์ ๋Š”๋‹ค. `participants`, `blocks`, `phases`, `sides`๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ํ๋ฆ„ ๋‹จ๊ณ„์˜ `state`๋ฅผ ์ƒํƒœ ํ•˜๋‚˜์”ฉ์œผ๋กœ ๋ชจ์•„ ๋‹ค์‹œ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ด๋ผ ์ƒˆ๋กœ ์ ์„ ์‚ฌ์‹ค์€ ์—†๋‹ค.
31
+
32
+ ```json
33
+ { "id": "queue-life", "shape": "lifecycle", "title": "์ค„์„œ๊ธฐ ์ƒํƒœ",
34
+ "question": "์ค„์„œ๊ธฐ ํ•ญ๋ชฉ์€ ์–ด๋–ค ์ƒํƒœ๋ฅผ ๊ฑฐ์น˜๋‚˜์š”?", "messages": [], "flow": "queue" }
35
+ ```
36
+
37
+ - ์ƒํƒœ ์นด๋“œ๋Š” ์„ธ ๋ ์— ์„ ๋‹ค. `main` ๊ธธ์˜ ์ƒํƒœ๋Š” ๋งจ ์œ„ **์ง„ํ–‰ ๋‹จ๊ณ„**, `side` ๊ธธ์—์„œ๋งŒ ๋‹ฟ๋Š” ์ƒํƒœ๋Š” ๊ฐ€์šด๋ฐ **๋Œ€๊ธฐ์™€ ๋ณต๊ตฌ**, ๋ ๋‹จ๊ณ„(`terminal: true`)์˜ ์ƒํƒœ๋Š” ๋งจ ์•„๋ž˜ **๋ ์ƒํƒœ**๋‹ค. ์ •์ƒ ํ๋ฆ„์ด ๋๋‚˜๋Š” ์ƒํƒœ(`main`์— ์žˆ๊ณ  `outcome`์ด ์—†๊ฑฐ๋‚˜ `done`)๋Š” ์ง„ํ–‰ ๋‹จ๊ณ„ ๋  ๋์— ๋‚จ๋Š”๋‹ค.
38
+ - `state`๊ฐ€ ์—†๋Š” ๋‹จ๊ณ„๋Š” ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ์ง€๋‚˜๊ฐ„๋‹ค. ๊ทธ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋Š” ์ „์ด๋Š” ์•ž๋’ค ์ƒํƒœ๋ฅผ ์ž‡๋Š” ์„  ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ง„๋‹ค. ๊ทธ๋ž˜์„œ ๋ ๋‹จ๊ณ„์—๋„ `state`๋ฅผ ๋‹ฌ์•„์•ผ ๋ ์ƒํƒœ ์นด๋“œ๊ฐ€ ์„ ๋‹ค. ๊ฐ™์€ ์ƒํƒœ ์•ˆ์—์„œ ์•ž์œผ๋กœ๋งŒ ๊ฐ€๋Š” ์ „์ด๋Š” ๋น ์ง€๊ณ  ๊ฐ™์€ ์ƒํƒœ๋กœ ๋˜๋Œ์•„์˜ค๋Š” ์ „์ด๋งŒ ์ž๊ธฐ ๊ณ ๋ฆฌ๋กœ ๋‚จ๋Š”๋‹ค.
39
+ - ์„  ๊ธ€์ž๋Š” ํ•ฉ์ณ์ง„ ์ „์ด๋งˆ๋‹ค `condition`๊ณผ `trigger`๋ฅผ, ๋‘˜ ๋‹ค ์—†์œผ๋ฉด `label`์„ ๊บผ๋‚ด ์‰ผํ‘œ๋กœ ์ž‡๋Š”๋‹ค. ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด ๋„์ฐฉ ๋‹จ๊ณ„ ์ด๋ฆ„์„ ํ๋ฆฐ ๊ธฐ์šธ์ž„๊ผด๋กœ ๋นŒ๋ ค ์“ด๋‹ค. ๋˜๋Œ์•„๊ฐ€๋Š” ์„ ์—๋Š” โ†ฉ๊ฐ€ ๋ถ™๋Š”๋‹ค.
40
+ - ๋ ๋‹จ๊ณ„์— `outcome`์„ ๋‹ฌ๋ฉด ๋ ์ƒํƒœ ์นด๋“œ์— ๋ฐฐ์ง€๊ฐ€ ๋ถ™๋Š”๋‹ค. `done`์€ ์™„๋ฃŒ, `cancel`์€ ์ทจ์†Œ, `fail`์€ ์‹คํŒจ๋‹ค. ์•ˆ ๋‹ฌ๋ฉด "๋"์ด๋‹ค. `outcome`์€ ๋ ๋‹จ๊ณ„์—๋งŒ ๋‹จ๋‹ค.
41
+ - ํ•œ ์žฅ์— ์ฝํžˆ๋Š” ์–‘์€ ์ง„ํ–‰ ๋‹จ๊ณ„ 5๊ฐœ, ๋Œ€๊ธฐ์™€ ๋ณต๊ตฌ 2๊ฐœ, ๋ ์ƒํƒœ 2๊ฐœ, ์ƒํƒœ ์ „์ฒด 9๊ฐœ, ์ „์ด 10๊ฐœ๋‹ค. ๋„˜์–ด๋„ ๊ทธ๋ฆฌ์ง€๋งŒ validate๊ฐ€ `LIFECYCLE_OVER_BUDGET` ๊ฒฝ๊ณ ๋ฅผ ๋‚ธ๋‹ค. ์„ธ๋ถ€ ์ƒํƒœ๋ฅผ ํ•ฉ์น˜๊ฑฐ๋‚˜ ํ๋ฆ„์„ ๋‚˜๋ˆˆ๋‹ค.
42
+ - **blueprint**: `messages`๋Š” ๋นˆ ๋ฐฐ์—ด๋กœ ๋‘๊ณ  `flow`์— `flows`์˜ ํ๋ฆ„ id ํ•˜๋‚˜๋ฅผ ์ ๋Š”๋‹ค. `participants`, `blocks`, `phases`, `sides`๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ํ๋ฆ„ ๋‹จ๊ณ„์™€ ์ง€๋„์— ์ด๋ฏธ ์ ์€ ์‚ฌ์‹ค์„ ์ธต์œผ๋กœ ๋‹ค์‹œ ๋‚˜๋ˆˆ ๊ทธ๋ฆผ์ด๋ผ ์ƒˆ๋กœ ์ ์„ ์‚ฌ์‹ค์€ ์—†๋‹ค.
43
+
44
+ ```json
45
+ { "id": "queue-bp", "shape": "blueprint", "title": "์ค„์„œ๊ธฐ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ",
46
+ "question": "์†๋‹˜์ด ์ค„์„ ์„œ๋Š” ๋™์•ˆ ๋’ค์—์„œ๋Š” ๋ฌด์—‡์ด ์ผํ•˜๋‚˜์š”?", "messages": [], "flow": "queue" }
47
+ ```
48
+
49
+ - ์—ด์€ `main` ๊ธธ์˜ ๋‹จ๊ณ„๋‹ค. ํ๋ฆ„ ๊ทธ๋ฆผ์—์„œ ๊ฐ™์€ ์—ด์— ์„œ๋Š” ๋‹จ๊ณ„๋Š” ํ•œ ์—ด๋กœ ๋ฌถ์ด๊ณ  ๊ฐˆ๋ฆผ๊ธธ(`kind: "decision"`)๊ณผ `side` ๊ธธ ๋‹จ๊ณ„๋Š” ๋น ์ง„๋‹ค. ์—ด ๋จธ๋ฆฌ๋Š” ๊ทธ ์—ด ๋‹จ๊ณ„์˜ `state` ์ด๋ฆ„์ด๊ณ  ์—†์œผ๋ฉด ์ฒซ ๋‹จ๊ณ„ ์ด๋ฆ„์ด๋‹ค.
50
+ - ์ธต์€ ์œ„์—์„œ ์•„๋ž˜๋กœ **๊ณ ๊ฐ ํ–‰๋™**, **ํ”„๋ก ํŠธ์Šคํ…Œ์ด์ง€**, **๊ฐ€์‹œ์„ **, **๋ฐฑ์Šคํ…Œ์ด์ง€**, **์ง€์›**์ด๋‹ค. ํ๋ฆ„์˜ ์ฒซ `person` ํ–‰์œ„์ž๊ฐ€ ๊ณ ๊ฐ์ด๋ผ ๊ทธ ๋‹จ๊ณ„๋Š” ๊ณ ๊ฐ ํ–‰๋™์— ์„ ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋‹จ๊ณ„๋Š” ํ”„๋ก ํŠธ์Šคํ…Œ์ด์ง€, ์‹œ์Šคํ…œ๊ณผ ์—์ด์ „ํŠธ์˜ ๋‹จ๊ณ„๋Š” ๋ฐฑ์Šคํ…Œ์ด์ง€๋‹ค.
51
+ - ๋‹จ๊ณ„ `refs`๊ฐ€ ์นธ์„ ์ฑ„์šด๋‹ค. ํ™”๋ฉด๊ณผ ์Šคํ‚ฌ์€ ํ”„๋ก ํŠธ์Šคํ…Œ์ด์ง€, API์™€ MCP ๋„๊ตฌ๋Š” ๋ฐฑ์Šคํ…Œ์ด์ง€์— ์„ ๋‹ค. ํ”„๋ก ํŠธ์Šคํ…Œ์ด์ง€ ํ™”๋ฉด๊ณผ ์Šคํ‚ฌ์ด `calls`๋กœ ๋ถ€๋ฅด๋Š” API๋„ ๋ฐฑ์Šคํ…Œ์ด์ง€์— ๋”ํ•œ๋‹ค. ๋ฐฑ์Šคํ…Œ์ด์ง€ API๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ์ด ๋‹ฟ๋Š” ํ…Œ์ด๋ธ”, ์ €์žฅ์†Œ, ์™ธ๋ถ€ ์„œ๋น„์Šค, ํ, ์žก์€ ์ง€์›์— ์„ ๋‹ค.
52
+ - ๊ทผ๊ฑฐ ์—†๋Š” ์—ฃ์ง€๋Š” ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๋Š”๋‹ค. ์—ฐ๊ฒฐ์ด ์•ˆ ๋ณด์ด๋Š” ์นธ์€ ์ง€์–ด๋‚ด์ง€ ์•Š๊ณ  `โ€”`๋กœ ๋น„์šด๋‹ค. ์นธ์„ ์ฑ„์šฐ๊ณ  ์‹ถ์œผ๋ฉด ๋‹จ๊ณ„์— `refs`๋ฅผ ๋‹ฌ๊ฑฐ๋‚˜ ์ง€๋„์— ๊ทผ๊ฑฐ์™€ ํ•จ๊ป˜ ์—ฃ์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค. ์ธต ์‚ฌ์ด์— ์„ ์€ ๊ธ‹์ง€ ์•Š๋Š”๋‹ค.
53
+ - ์นธ ํ•˜๋‚˜์— ์นด๋“œ๋Š” ์…‹๊นŒ์ง€๋‹ค. ๋‚˜๋จธ์ง€๋Š” "+N"์œผ๋กœ ์ ‘๊ณ  ์ด๋ฆ„์€ ํˆดํŒ์— ์žˆ๋‹ค. ๋ฌธ์„œ๋กœ๋งŒ ๋‹ฟ์€ ์นด๋“œ๋Š” ํ…Œ๋‘๋ฆฌ๊ฐ€ ์ ์„ ์ด๋‹ค.
54
+ - ํ•œ ์žฅ์— ์ฝํžˆ๋Š” ์–‘์€ ๋‹จ๊ณ„ 6์—ด์ด๋‹ค. ๋„˜์–ด๋„ ๊ทธ๋ฆฌ์ง€๋งŒ validate๊ฐ€ `BLUEPRINT_OVER_BUDGET` ๊ฒฝ๊ณ ๋ฅผ ๋‚ธ๋‹ค. ๊ฐ™์€ ํ™”๋ฉด์—์„œ ์ด์–ด์ง€๋Š” ๋‹จ๊ณ„๋ฅผ ํ•ฉ์น˜๊ฑฐ๋‚˜ ํ๋ฆ„์„ ๋‚˜๋ˆˆ๋‹ค.
55
+ - **er**: `messages`๋Š” ๋นˆ ๋ฐฐ์—ด๋กœ ๋‘๊ณ  `participants`์— ๊ทธ๋ฆด `db_table` id๋ฅผ ์ ๋Š”๋‹ค. `blocks`, `phases`, `sides`, `flow`๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ์„ ์€ ํ…Œ์ด๋ธ” ๋…ธ๋“œ `columns`์˜ `references`์—์„œ ๋‚˜์˜จ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ฆผ์„ ์–น๊ธฐ ์ „์— ํ…Œ์ด๋ธ”๋งˆ๋‹ค `columns`๋ถ€ํ„ฐ ์ฑ„์šด๋‹ค.
56
+
57
+ ```json
58
+ { "id": "order-schema", "shape": "er", "title": "์ฃผ๋ฌธ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ",
59
+ "question": "์ฃผ๋ฌธ์„ ์ง€์šฐ๋ฉด ์–ด๋–ค ํ–‰์ด ๊ฐ™์ด ์ง€์›Œ์ง€๋‚˜์š”?",
60
+ "participants": ["tbl:users", "tbl:orders", "tbl:order-items"], "messages": [] }
61
+ ```
62
+
63
+ ```json
64
+ { "id": "tbl:orders", "kind": "db_table", "label": "orders", "parent": "ds:main", "repo": "api",
65
+ "evidence": [{ "type": "code", "location": "api:db/migrations/003_orders.sql:1", "visibility": "public" }],
66
+ "columns": [
67
+ { "name": "id", "type": "uuid", "pk": true },
68
+ { "name": "user_id", "type": "uuid",
69
+ "references": { "table": "tbl:users", "column": "id", "onDelete": "CASCADE" },
70
+ "evidence": [{ "type": "code", "location": "api:db/migrations/003_orders.sql:4", "visibility": "public" }] }
71
+ ] }
72
+ ```
73
+
74
+ - ์ปฌ๋Ÿผ์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ, ORM ์—”ํ‹ฐํ‹ฐ, ์Šคํ‚ค๋งˆ ๋คํ”„์—์„œ ์ฝ๋Š”๋‹ค. ์—ฌ๋Ÿฌ ๊ณณ์ด ๋‹ค๋ฅด๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋”ฐ๋ฅธ๋‹ค. ์‹ค์ œ๋กœ DB์— ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๊ฐ€ ๊ฑฐ๊ธฐ ์žˆ์–ด์„œ๋‹ค.
75
+ - ํ…Œ์ด๋ธ” ์ƒ์ž์—๋Š” ์ปฌ๋Ÿผ์ด ํ–‰ ํ•˜๋‚˜์”ฉ ์„œ๊ณ  PK, FK, UQ, NULL ๋ฐฐ์ง€๊ฐ€ ๋ถ™๋Š”๋‹ค. ํ…Œ์ด๋ธ” ํ•˜๋‚˜์— 8ํ–‰๊นŒ์ง€ ๋ณด์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” "์ปฌ๋Ÿผ N๊ฐœ ๋”" ํ•œ ํ–‰์œผ๋กœ ์ ‘๋Š”๋‹ค. PK์™€ ์„ ์ด ๋ถ™๋Š” ์ปฌ๋Ÿผ์ด ๋จผ์ € ๋‚จ๋Š”๋‹ค.
76
+ - ์™ธ๋ž˜ ํ‚ค ์„ ์€ ์ถœ๋ฐœ ์ปฌ๋Ÿผ ํ–‰์—์„œ ๋Œ€์ƒ ์ปฌ๋Ÿผ ํ–‰์œผ๋กœ ๊ฐ„๋‹ค. ์ปฌ๋Ÿผ `evidence`์— code๋‚˜ spec์ด ์žˆ์œผ๋ฉด ์‹ค์„ , ๋ฌธ์„œ ๊ทผ๊ฑฐ๋ฟ์ด๋ฉด ์ ์„ ์ด๋‹ค. ๊ทผ๊ฑฐ๊ฐ€ ์—†์œผ๋ฉด ์„ ์„ ๊ธ‹์ง€ ์•Š๊ณ  ๋ฐฐ์ง€๊ฐ€ `FK?`๋กœ ์„œ๋ฉฐ `auto:fk:<ํ…Œ์ด๋ธ” id>:<์ปฌ๋Ÿผ>` ์งˆ๋ฌธ์ด ์ƒ๊ธด๋‹ค. ์ด๋ฆ„์ด `_id`๋กœ ๋๋‚œ๋‹ค๊ณ  ์ง์ž‘ํ•ด ์ž‡์ง€ ์•Š๋Š”๋‹ค.
77
+ - `onDelete`๋Š” ๊ทผ๊ฑฐ๊ฐ€ ์žˆ๋Š” ์™ธ๋ž˜ ํ‚ค์—์„œ๋งŒ ์„  ์œ„์— `ON DELETE โ€ฆ`๋กœ ๋ณด์ธ๋‹ค. ๋ช‡ ๋Œ€ ๋ช‡์ธ์ง€๋Š” ๊ทธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์ปฌ๋Ÿผ ์ •์˜๋งŒ์œผ๋กœ๋Š” ํ™•์‹คํžˆ ์•Œ ์ˆ˜ ์—†์–ด์„œ๋‹ค.
78
+ - `participants`์— ์—†๋Š” ํ…Œ์ด๋ธ”์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์™ธ๋ž˜ ํ‚ค๋Š” ์„  ์—†์ด FK ๋ฐฐ์ง€๋งŒ ๋‚จ๋Š”๋‹ค. ๊ทธ ํ…Œ์ด๋ธ”์ด ์งˆ๋ฌธ์— ํ•„์š”ํ•˜๋ฉด `participants`์— ๋”ํ•œ๋‹ค.
79
+ - ํ•œ ์žฅ์— ์ฝํžˆ๋Š” ์–‘์€ ํ…Œ์ด๋ธ” 5๊ฐœ, ํ•œ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ 8๊ฐœ, ์™ธ๋ž˜ ํ‚ค ์„  6๊ฐœ๋‹ค. ๋„˜์–ด๋„ ๊ทธ๋ฆฌ์ง€๋งŒ validate๊ฐ€ `ER_OVER_BUDGET` ๊ฒฝ๊ณ ๋ฅผ ๋‚ธ๋‹ค. ์งˆ๋ฌธ์— ๊ฑธ๋ฆฐ ํ…Œ์ด๋ธ”๋งŒ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ๊ทธ๋ฆผ์„ ๋‚˜๋ˆˆ๋‹ค.
80
+ - **ํ๋ฆ„ ๊ทธ๋ฆผ, lifecycle, sequence ๊ณ ๋ฅด๊ธฐ**: ์…‹ ๋‹ค "์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋‚˜"์— ๋‹ตํ•˜์ง€๋งŒ ๋ฌป๋Š” ๊ธฐ์ค€์ด ๋‹ค๋ฅด๋‹ค.
81
+ - "๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋‚˜"๋ฉด ํ๋ฆ„ ๊ทธ๋ฆผ์ด๋‹ค. ํ–‰์œ„์ž ์ค„๋งˆ๋‹ค ๋‹จ๊ณ„๊ฐ€ ๋†“์—ฌ ์‚ฌ๋žŒ๊ณผ ์‹œ์Šคํ…œ์ด ์ผ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ์ž๋ฆฌ๊ฐ€ ๋ณด์ธ๋‹ค. `flows`๋งŒ ์“ฐ๋ฉด ๋œ๋‹ค.
82
+ - "์ด ๋Œ€์ƒ์ด ์–ด๋–ค ์ƒํƒœ๋ฅผ ๊ฑฐ์ณ ์–ด๋””์„œ ๋๋‚˜๋‚˜"๋ฉด lifecycle์ด๋‹ค. ํ–‰์œ„์ž๋ฅผ ๊ฑท๊ณ  ์ƒํƒœ๋งŒ ๋‚จ๊ฒจ ๋Œ€๊ธฐ, ์žฌ์‹œ๋„, ์ทจ์†Œ, ์‹คํŒจ๊ฐ€ ์ •์ƒ ํ๋ฆ„๊ณผ ์–ด๋–ป๊ฒŒ ๊ฐˆ๋ฆฌ๋Š”์ง€ ํ•œ๋ˆˆ์— ๋ณด์ธ๋‹ค. ์ƒํƒœ๊ฐ€ ์…‹ ์ดํ•˜๋ฉด ํ๋ฆ„ ๊ทธ๋ฆผ ์œ„์ชฝ ์ƒํƒœ ๊ตฌ๊ฐ„์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ˆ ์–น์ง€ ์•Š๋Š”๋‹ค.
83
+ - "์–ด๋А ๋ชจ๋“ˆ์ด ๋ฌด์—‡์„ ์–ด๋–ค ์ˆœ์„œ๋กœ ๋ถ€๋ฅด๋‚˜"๋ฉด sequence๋‹ค. ์ค„๊ฑฐ๋ฆฌ๊ฐ€ ํ˜ธ์ถœ๊ณผ ์‘๋‹ต์ด๋‹ค.
84
+ - **blueprint, dataflow, sequence ๊ณ ๋ฅด๊ธฐ**: "๊ณ ๊ฐ์ด ํ•œ ๊ฑธ์Œ ๊ฐˆ ๋•Œ ํ™”๋ฉด ๋’ค์—์„œ ๋ฌด์—‡์ด ์ผํ•˜๋‚˜"๋ฉด blueprint๋‹ค. ๊ณ ๊ฐ ๋‹จ๊ณ„๊ฐ€ ์—ด์ด๋ผ ๋‹จ๊ณ„๋งˆ๋‹ค ๋ณด์ด๋Š” ์ชฝ๊ณผ ์•ˆ ๋ณด์ด๋Š” ์ชฝ์ด ํ•จ๊ป˜ ์ฝํžŒ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์„œ ์™€์„œ ์–ด๋””๋กœ ๊ฐ€๋Š”์ง€๋ฉด dataflow์ด๊ณ  ๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ๋ถ€๋ฅด๋Š”์ง€๋ฉด sequence๋‹ค. ๋‘˜์€ ์„ ์„ ๋”ฐ๋ผ ์ฝ๋Š” ๊ทธ๋ฆผ์ด๊ณ  blueprint๋Š” ์นธ์„ ์ฝ๋Š” ๊ทธ๋ฆผ์ด๋‹ค.
85
+ - **er, dataflow ๊ณ ๋ฅด๊ธฐ**: "์–ด๋–ค ํ…Œ์ด๋ธ”์ด ์–ด๋–ค ์ปฌ๋Ÿผ์œผ๋กœ ์„œ๋กœ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋‚˜", "์ด๊ฑธ ์ง€์šฐ๋ฉด ๋ฌด์—‡์ด ๊ฐ™์ด ์ง€์›Œ์ง€๋‚˜"๋ฉด er์ด๋‹ค. ํ…Œ์ด๋ธ” ์•ˆ์ชฝ ๊ตฌ์กฐ์™€ ์™ธ๋ž˜ ํ‚ค๊ฐ€ ์ค„๊ฑฐ๋ฆฌ๋‹ค. "๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋А ๋ชจ๋“ˆ์„ ๊ฑฐ์ณ ์–ด๋А ํ…Œ์ด๋ธ”์— ์Œ“์ด๋‚˜"๋ฉด dataflow๋‹ค. ์ฝ”๋“œ๊ฐ€ ํ…Œ์ด๋ธ”์„ ์ฝ๊ณ  ์“ฐ๋Š” ๊ธธ์„ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ทธ๋ฆผ์ด๋ผ ์ปฌ๋Ÿผ์€ ์•ˆ ๋‚˜์˜จ๋‹ค.
30
86
  - ์งˆ๋ฌธ ํ•˜๋‚˜์— ๊ทธ๋ฆผ ํ•˜๋‚˜๋‹ค. ์งˆ๋ฌธ์ด ์—ฌ๋Ÿฟ์ด๋ฉด ๊ทธ๋ฆผ๋„ ์—ฌ๋Ÿฟ ๋‹จ๋‹ค.
31
87
  - ํ•˜๋„ค์Šค ๋ ˆํฌ๋Š” ๋ฌป์ง€ ์•Š์•„๋„ ์ง„์ž… ๊ฒฝ๋กœ๋งˆ๋‹ค ์ˆœ์„œ๋„๋ฅผ ํ•˜๋‚˜์”ฉ ์–น๋Š”๋‹ค. ์ž์„ธํ•œ ๊ฑด [Step 3.5](../SKILL.md#step-35--๋„๋ฉ”์ธ-ํ๋ฆ„)์˜ ํ•˜๋„ค์Šค ํ๋ฆ„ ํ•ญ๋ชฉ์— ์žˆ๋‹ค.
@@ -2,6 +2,8 @@
2
2
  2. **๋…ธ๋“œ id๋ฅผ ์œ ์ง€ํ•œ๋‹ค.** ๊ฐ™์€ ๋…ธ๋“œ๋Š” ๊ฐ™์€ id๋กœ ์“ด๋‹ค. render๊ฐ€ kind์™€ repo์™€ label์ด ๊ฐ™์€ ๋…ธ๋“œ์— ์ด์ „ id๋ฅผ ๋ฌผ๋ ค์ฃผ๊ธด ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ label์„ ๋ฐ”๊พธ๋ฉด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๋ณธ๋‹ค. ์—”๋“œํฌ์ธํŠธ label์€ Step 3์˜ ๊ผด์„ ๊ทธ๋Œ€๋กœ ์ง€ํ‚จ๋‹ค. ์‚ฌ๋žŒ์ด ์ฝ์„ ์ด๋ฆ„์„ ๊ณ ์น˜๊ณ  ์‹ถ์œผ๋ฉด label ๋Œ€์‹  `displayName`์„ ๊ณ ์นœ๋‹ค.
3
3
  3. **`previousSourcesUsed`๋ฅผ ๋จผ์ € ๊ฐ„ ๋ณธ๋‹ค.** `probeHit`๊ฐ€ `true`์˜€๋˜ ์†Œ์Šค๋ถ€ํ„ฐ ๋ณธ๋‹ค. ์ด๋ฒˆ์—๋„ `filter_tools`๋Š” ๋‹ค์‹œ ๊ฑฐ์นœ๋‹ค. ๋„๊ตฌ ์ด๋ฆ„์ด ๊ฐ™์•„๋„ ์ด๋ฒˆ ์„ธ์…˜์— ๋ถ™์€ ์„œ๋ฒ„๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
4
4
  4. **์ง€๋‚œ ์‹คํ–‰ ์ดํ›„ ๋ฐ”๋€ ๊ณณ ์ฃผ๋ณ€๋งŒ ๋‹ค์‹œ ํƒ์ƒ‰ํ•œ๋‹ค.** `generatedAt` ์ดํ›„์˜ `git log`์™€ `git diff`๋กœ ๋ฐ”๋€ ํŒŒ์ผ์„ ๋ฝ‘๋Š”๋‹ค. ๊ทธ ํŒŒ์ผ์— ๊ฑธ๋ฆฐ ๋…ธ๋“œ์™€ ์—ฃ์ง€๋งŒ ๊ทผ๊ฑฐ ์ค„์„ ๋‹ค์‹œ ํ™•์ธํ•œ๋‹ค. ์•ˆ ๋ฐ”๋€ ํŒŒ์ผ์˜ ๊ทผ๊ฑฐ๋„ ์ค„์ด ๋ฐ€๋ ธ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ validate์˜ `CODE_EVIDENCE_NOT_FOUND`๊ฐ€ ๋‚˜๋ฉด ๊ทธ ๊ทผ๊ฑฐ๋Š” ๋‹ค์‹œ ์ฐพ๋Š”๋‹ค.
5
- 5. **์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์€ ์ง€๋‚œ ๊ฒƒ์„ ๋‹ค์‹œ ์ ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.** ์ƒˆ IR์— ๊ฐ™์€ id ๊ทธ๋ฆผ์ด ์—†์œผ๋ฉด render๊ฐ€ ์ง€๋‚œ ๊ทธ๋ฆผ์„ ์ด์–ด ๋ถ™์ธ๋‹ค. ๋‹จ ๊ฐ€๋ฆฌํ‚จ ๋…ธ๋“œ์™€ ์—ฃ์ง€๊ฐ€ ๋‹ค ๋‚จ์•„ ์žˆ๊ณ  ๊ทธ๋ฆผ id์™€ ๋ฉ”์‹œ์ง€ id๊ฐ€ ์ด๋ฒˆ ๊ฒƒ๊ณผ ์•ˆ ๊ฒน์น  ๋•Œ๋งŒ์ด๋‹ค. ํ•˜๋‚˜๋ผ๋„ ์–ด๊ธ‹๋‚˜๋ฉด ๋ฒ„๋ ค์ง€๋‹ˆ ์‘๋‹ต์˜ `viewPaths`์—์„œ ๋น ์ง„ ๊ทธ๋ฆผ์ด ์žˆ๋Š”์ง€ ๋ณธ๋‹ค. ๋น ์กŒ์œผ๋ฉด ์ง€๋„๋ฅผ ๊ณ ์นœ ๋’ค ๋‹ค์‹œ ์ ๋Š”๋‹ค.
5
+ 5. **์งˆ๋ฌธ๋ณ„ ๊ทธ๋ฆผ์€ ์ง€๋‚œ ๊ฒƒ์„ ๋‹ค์‹œ ์ ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.** ์ƒˆ IR์— ๊ฐ™์€ id ๊ทธ๋ฆผ์ด ์—†์œผ๋ฉด render๊ฐ€ ์ง€๋‚œ ๊ทธ๋ฆผ์„ ์ด์–ด ๋ถ™์ธ๋‹ค. ๋‹จ ๊ฐ€๋ฆฌํ‚จ ๋…ธ๋“œ์™€ ์—ฃ์ง€๊ฐ€ ๋‹ค ๋‚จ์•„ ์žˆ๊ณ  ๊ทธ๋ฆผ id์™€ ๋ฉ”์‹œ์ง€ id๊ฐ€ ์ด๋ฒˆ ๊ฒƒ๊ณผ ์•ˆ ๊ฒน์น  ๋•Œ๋งŒ์ด๋‹ค. lifecycle๊ณผ blueprint๋Š” ๊ฐ€๋ฆฌํ‚จ ํ๋ฆ„๋„ ์ด๋ฒˆ IR `flows`์— ์žˆ๊ณ  ๊ทธ๋ฆด ๋‹จ๊ณ„๊ฐ€ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค(lifecycle์€ `state`๋ฅผ ๋‹จ ๋‹จ๊ณ„, blueprint๋Š” ๊ฐˆ๋ฆผ๊ธธ์ด ์•„๋‹Œ ๋‹จ๊ณ„). ํ๋ฆ„์€ render๊ฐ€ ์ง€๋‚œ IR์—์„œ ์ด์–ด๋ฐ›์ง€ ์•Š์œผ๋‹ˆ ๋‹ค์‹œ ์ ๋Š”๋‹ค. er์€ ๊ฐ€๋ฆฌํ‚จ ๋…ธ๋“œ๊ฐ€ ์ด๋ฒˆ์—๋„ ํ…Œ์ด๋ธ”(`db_table`)์ด์–ด์•ผ ํ•œ๋‹ค. ํ•˜๋‚˜๋ผ๋„ ์–ด๊ธ‹๋‚˜๋ฉด ๋ฒ„๋ ค์ง€๋‹ˆ ์‘๋‹ต์˜ `viewPaths`์—์„œ ๋น ์ง„ ๊ทธ๋ฆผ์ด ์žˆ๋Š”์ง€ ๋ณธ๋‹ค. ๋น ์กŒ์œผ๋ฉด ์ง€๋„๋ฅผ ๊ณ ์นœ ๋’ค ๋‹ค์‹œ ์ ๋Š”๋‹ค.
6
6
  6. ๋‹ต์ด ๋‹ฌ๋ฆฐ ์ง€๋‚œ ์งˆ๋ฌธ์€ render๊ฐ€ ๋ฌผ๋ ค์ค€๋‹ค. ๋‹ต ์•ˆ ๋‹ฌ๋ฆฐ ์งˆ๋ฌธ์€ Step 7์—์„œ ๋‹ค์‹œ ๋ฌป๋Š”๋‹ค. `user` ๊ทผ๊ฑฐ๋กœ ์ •ํ•ด์ง„ ๊ธฐ๋Šฅ์˜์—ญ ๊ฒฝ๊ณ„๋Š” Step 3-1๋Œ€๋กœ ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.
7
7
  7. **ํ™”๋ฉด ์บก์ฒ˜๋Š” ์ง€๋‚œ IR์˜ `capture`๋ฅผ ๊ทธ๋Œ€๋กœ ์ด์–ด๋ฐ›๋Š”๋‹ค.** ์ด๋ฏธ์ง€๋Š” ์ฝ์ง€ ๋ง๊ณ  ํŒŒ์ผ์งธ ์˜ฎ๊ธด๋‹ค. 4๋ฒˆ์—์„œ ๋ฐ”๋€ ํŒŒ์ผ๋กœ ๋ฝ‘ํžŒ ํ™”๋ฉด์ด๊ฑฐ๋‚˜ `capture.commit` ์ดํ›„ ๊ทธ ํ™”๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์œผ๋ฉด ๋‚ก์•˜์„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์‹œ ์ฐ์„์ง€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๋Š”๋‹ค. ์•ˆ ์ฐ๊ธฐ๋กœ ํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.
8
+ 8. **render ์‘๋‹ต์˜ `delta`๋กœ ์ง€๋‚œ๋ฒˆ๊ณผ ๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ์•Œ๋ฆฐ๋‹ค.** render๋Š” ๋ณ‘ํ•ฉ ์ „์— ์ฝ์€ ์ง€๋‚œ IR๊ณผ ์ด๋ฒˆ ๋ณ‘ํ•ฉ ๊ฒฐ๊ณผ๋ฅผ id๋กœ ๋งž์ถฐ ์ƒ๊น€(ADDED), ๋น ์ง(REMOVED), ์†์„ฑ ๋ณ€๊ฒฝ(CHANGED), ๋ถ€๋ชจ๋‚˜ ๊ณ„์ •, ๊ตฌ๊ฐ„ ์ด๋™(MOVED), ์—ฐ๊ฒฐ ๋ ๋ณ€๊ฒฝ(REWIRED)์„ ๋ฝ‘๋Š”๋‹ค. 2๋ฒˆ์ฒ˜๋Ÿผ label์„ ๋ฐ”๊พผ ๋…ธ๋“œ๋Š” ๋น ์ง๊ณผ ์ƒ๊น€ ๋‘ ๊ฑด์œผ๋กœ ์žกํžŒ๋‹ค. ์ด๋ฆ„๋งŒ ๊ณ ์นœ ๊ฒƒ์„ ๋ณ€๊ฒฝ ํ•œ ๊ฑด์œผ๋กœ ๋ณด์ด๊ณ  ์‹ถ์œผ๋ฉด `displayName`์„ ๊ณ ์นœ๋‹ค. ์•Œ๋ฆฌ๋Š” ๋ฒ•์€ SKILL.md Step 8์— ์žˆ๋‹ค. ํ…Œ์ด๋ธ” `columns`๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜ ๋น ์ง€๊ฑฐ๋‚˜ ๋ฐ”๋€ ๊ฒƒ๋„ ๊ทธ ํ…Œ์ด๋ธ”์˜ CHANGED ํ•œ ๊ฑด์— ์ปฌ๋Ÿผ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์‹ค๋ฆฐ๋‹ค. ๋์ ์ด ๋ฐ”๋€Œ์–ด ์ง์ง€์€ ์—ฐ๊ฒฐ๋„ ์•ก์…˜์ด ๋‹ค๋ฅด๋ฉด CHANGED์™€ REWIRED ๋‘ ๊ฑด์œผ๋กœ ์žกํžŒ๋‹ค.
9
+ 9. **ํ…Œ์ด๋ธ” `columns`๋Š” render๊ฐ€ ์ง€๋‚œ IR์—์„œ ์ด์–ด๋ฐ›์ง€ ์•Š๋Š”๋‹ค.** ์ด๋ฒˆ IR์— ๋‹ค์‹œ ์ ๋Š”๋‹ค. ๋น ๋œจ๋ฆฌ๋ฉด ์ง€์šด ์ปฌ๋Ÿผ๊ณผ ๊ตฌ๋ณ„์ด ์•ˆ ๋ผ ์ „๋ถ€ ๋น ์ง์œผ๋กœ ์žกํžŒ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๋Š˜์—ˆ์œผ๋ฉด ์ƒˆ ํŒŒ์ผ๋งŒ ์ฝ์–ด ์ง€๋‚œ ๋ชฉ๋ก์— ๋”ํ•œ๋‹ค.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: blast-radius
3
3
  version: "1.2.0"
4
- description: "์ฝ”๋“œ ๋ณ€๊ฒฝ ์ „ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ํŒŒ์•…ํ•ด ์ฝ์–ด์•ผ ํ•  ํŒŒ์ผ๋งŒ ์ปจํ…์ŠคํŠธ์— ์ œ๊ณตํ•œ๋‹ค. ๋ณ€๊ฒฝ ๋ฒ”์œ„๊ฐ€ ๋ถˆํ™•์‹คํ•˜๊ฑฐ๋‚˜ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๊ฐ€ ๊ฑฑ์ •๋  ๋•Œ ์ž๋™ ๋ฐœ๋™ํ•œ๋‹ค. ์•„์ง ๊ณ ์น˜์ง€ ์•Š์€ ์ฝ”๋“œ๊ฐ€ ๋Œ€์ƒ์ด๋‹ค. ์ด๋ฏธ ๊ณ ์ณ์„œ ๋ฏธ์ปค๋ฐ‹์ด๋‚˜ ์Šคํ…Œ์ด์ง• ์ƒํƒœ์ธ ๋ณ€๊ฒฝ์˜ ์˜ํ–ฅ๋ฒ”์œ„๋Š” diff-radius๋ฅผ ์“ด๋‹ค."
4
+ description: "์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๊ธฐ ์ „์— ์˜ํ–ฅ๋ฒ”์œ„๋ฅผ ํŒŒ์•…ํ•ด ๊ฐ™์ด ๋ด์•ผ ํ•  ํŒŒ์ผ๋งŒ ์ปจํ…์ŠคํŠธ์— ์‹ฃ๋Š”๋‹ค(impact analysis). '์˜ํ–ฅ๋ฒ”์œ„ ํ™•์ธํ•ด์ค˜/์–ด๋””๊นŒ์ง€ ์˜ํ–ฅ๋ฐ›์•„/๋ญ๊ฐ€ ๊นจ์งˆ ์ˆ˜ ์žˆ์–ด' ๊ฐ™์€ ์š”์ฒญ์ด๋‚˜, ์‹œ๊ทธ๋‹ˆ์ฒ˜์™€ ์ธํ„ฐํŽ˜์ด์Šค, ํƒ€์ž…์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๋“ฑ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ธฐ ์ „์— ์ž๋™ ๋ฐœ๋™ํ•œ๋‹ค. ์ˆ˜์ • ๋ฒ”์œ„๊ฐ€ ๋ถˆํ™•์‹คํ•˜๊ฑฐ๋‚˜ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๊ฐ€ ๊ฑฑ์ •๋  ๋•Œ๋„ ์“ด๋‹ค. ์•„์ง ๊ณ ์น˜์ง€ ์•Š์€ ์ฝ”๋“œ๊ฐ€ ๋Œ€์ƒ์ด๋‹ค. ์ด๋ฏธ ๊ณ ์ณ์„œ ๋ฏธ์ปค๋ฐ‹์ด๋‚˜ ์Šคํ…Œ์ด์ง• ์ƒํƒœ์ธ ๋ณ€๊ฒฝ์€ diff-radius๋ฅผ ์“ด๋‹ค."
5
5
  triggers:
6
6
  # ์˜ํ–ฅ๋ฒ”์œ„ ํ™•์ธ ์˜๋„
7
7
  - "์˜ํ–ฅ๋ฒ”์œ„"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: build-graph
3
3
  version: "1.1.0"
4
- description: "Build a code knowledge graph for the current repository to enable blast-radius analysis. Graph build only. For first-time project setup โ€” gestalt.json, the post-commit hook, and the graph together โ€” use setup instead."
4
+ description: "ํ˜„์žฌ ๋ ˆํฌ์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ธ๋ฑ์‹ฑํ•ด(index codebase) ์ฝ”๋“œ ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ๋นŒ๋“œํ•œ๋‹ค. blast-radius ๋ถ„์„์ด ์ด ๊ทธ๋ž˜ํ”„๋ฅผ ์“ด๋‹ค. ๊ทธ๋ž˜ํ”„๋งŒ ๋‹ค๋ฃฌ๋‹ค. gestalt.json๊ณผ post-commit ํ›…๊นŒ์ง€ ๋ฌถ์€ ๋ ˆํฌ ์ฒซ ์„ค์ •์€ setup์„ ์“ด๋‹ค."
5
5
  triggers:
6
6
  - "build graph"
7
7
  - "build-graph"