timsquad 3.3.0 → 3.4.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 (135) hide show
  1. package/README.ko.md +288 -0
  2. package/README.md +158 -151
  3. package/dist/commands/compile.d.ts +3 -0
  4. package/dist/commands/compile.d.ts.map +1 -0
  5. package/dist/commands/compile.js +170 -0
  6. package/dist/commands/compile.js.map +1 -0
  7. package/dist/commands/daemon.d.ts.map +1 -1
  8. package/dist/commands/daemon.js +94 -5
  9. package/dist/commands/daemon.js.map +1 -1
  10. package/dist/commands/init.d.ts.map +1 -1
  11. package/dist/commands/init.js +12 -3
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/skills.d.ts +12 -0
  14. package/dist/commands/skills.d.ts.map +1 -0
  15. package/dist/commands/skills.js +231 -0
  16. package/dist/commands/skills.js.map +1 -0
  17. package/dist/commands/upgrade.js +5 -0
  18. package/dist/commands/upgrade.js.map +1 -1
  19. package/dist/daemon/entry.js +3 -3
  20. package/dist/daemon/entry.js.map +1 -1
  21. package/dist/daemon/index.d.ts +3 -2
  22. package/dist/daemon/index.d.ts.map +1 -1
  23. package/dist/daemon/index.js +137 -45
  24. package/dist/daemon/index.js.map +1 -1
  25. package/dist/daemon/meta-cache.d.ts +1 -0
  26. package/dist/daemon/meta-cache.d.ts.map +1 -1
  27. package/dist/daemon/meta-cache.js +9 -0
  28. package/dist/daemon/meta-cache.js.map +1 -1
  29. package/dist/daemon/session-state.d.ts +19 -0
  30. package/dist/daemon/session-state.d.ts.map +1 -0
  31. package/dist/daemon/session-state.js +132 -0
  32. package/dist/daemon/session-state.js.map +1 -0
  33. package/dist/daemon/shutdown.d.ts.map +1 -1
  34. package/dist/daemon/shutdown.js +7 -1
  35. package/dist/daemon/shutdown.js.map +1 -1
  36. package/dist/index.js +4 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/lib/compile-rules.d.ts +66 -0
  39. package/dist/lib/compile-rules.d.ts.map +1 -0
  40. package/dist/lib/compile-rules.js +114 -0
  41. package/dist/lib/compile-rules.js.map +1 -0
  42. package/dist/lib/compiler.d.ts +105 -0
  43. package/dist/lib/compiler.d.ts.map +1 -0
  44. package/dist/lib/compiler.js +368 -0
  45. package/dist/lib/compiler.js.map +1 -0
  46. package/dist/lib/config.d.ts +1 -0
  47. package/dist/lib/config.d.ts.map +1 -1
  48. package/dist/lib/config.js +8 -1
  49. package/dist/lib/config.js.map +1 -1
  50. package/dist/lib/template.d.ts.map +1 -1
  51. package/dist/lib/template.js +6 -0
  52. package/dist/lib/template.js.map +1 -1
  53. package/dist/types/config.d.ts +1 -0
  54. package/dist/types/config.d.ts.map +1 -1
  55. package/dist/types/config.js +12 -1
  56. package/dist/types/config.js.map +1 -1
  57. package/dist/types/project.d.ts +1 -1
  58. package/dist/types/project.d.ts.map +1 -1
  59. package/dist/types/project.js +2 -0
  60. package/dist/types/project.js.map +1 -1
  61. package/package.json +1 -1
  62. package/templates/base/agents/overlays/domain/mobile/_common.md +13 -0
  63. package/templates/base/skills/controller/SKILL.md +111 -0
  64. package/templates/base/skills/controller/references/README.md +35 -0
  65. package/templates/base/skills/controller/rules/README.md +18 -0
  66. package/templates/base/skills/mobile/dart/SKILL.md +69 -0
  67. package/templates/base/skills/mobile/dart/rules/async-patterns.md +112 -0
  68. package/templates/base/skills/mobile/dart/rules/code-style.md +96 -0
  69. package/templates/base/skills/mobile/dart/rules/null-safety.md +84 -0
  70. package/templates/base/skills/mobile/dart/rules/type-system.md +111 -0
  71. package/templates/base/skills/mobile/flutter/SKILL.md +89 -0
  72. package/templates/base/skills/mobile/flutter/ci-cd/SKILL.md +82 -0
  73. package/templates/base/skills/mobile/flutter/ci-cd/references/ci-cd-pipeline.md +314 -0
  74. package/templates/base/skills/mobile/flutter/ci-cd/rules/code-signing.md +106 -0
  75. package/templates/base/skills/mobile/flutter/ci-cd/rules/codemagic-setup.md +116 -0
  76. package/templates/base/skills/mobile/flutter/ci-cd/rules/fastlane-setup.md +105 -0
  77. package/templates/base/skills/mobile/flutter/ci-cd/rules/github-actions.md +112 -0
  78. package/templates/base/skills/mobile/flutter/ci-cd/rules/store-deployment.md +106 -0
  79. package/templates/base/skills/mobile/flutter/ci-cd/rules/versioning.md +107 -0
  80. package/templates/base/skills/mobile/flutter/i18n/SKILL.md +78 -0
  81. package/templates/base/skills/mobile/flutter/i18n/references/i18n-architecture.md +225 -0
  82. package/templates/base/skills/mobile/flutter/i18n/rules/arb-files.md +182 -0
  83. package/templates/base/skills/mobile/flutter/i18n/rules/locale-switching.md +226 -0
  84. package/templates/base/skills/mobile/flutter/i18n/rules/localization-setup.md +137 -0
  85. package/templates/base/skills/mobile/flutter/i18n/rules/plural-gender.md +159 -0
  86. package/templates/base/skills/mobile/flutter/i18n/rules/text-direction.md +199 -0
  87. package/templates/base/skills/mobile/flutter/monitoring/SKILL.md +81 -0
  88. package/templates/base/skills/mobile/flutter/monitoring/references/monitoring-architecture.md +269 -0
  89. package/templates/base/skills/mobile/flutter/monitoring/rules/analytics.md +227 -0
  90. package/templates/base/skills/mobile/flutter/monitoring/rules/crashlytics-setup.md +195 -0
  91. package/templates/base/skills/mobile/flutter/monitoring/rules/logging.md +258 -0
  92. package/templates/base/skills/mobile/flutter/monitoring/rules/performance-monitoring.md +248 -0
  93. package/templates/base/skills/mobile/flutter/monitoring/rules/sentry-integration.md +249 -0
  94. package/templates/base/skills/mobile/flutter/networking/SKILL.md +88 -0
  95. package/templates/base/skills/mobile/flutter/networking/references/api-client-architecture.md +305 -0
  96. package/templates/base/skills/mobile/flutter/networking/rules/caching.md +212 -0
  97. package/templates/base/skills/mobile/flutter/networking/rules/connectivity.md +213 -0
  98. package/templates/base/skills/mobile/flutter/networking/rules/dio-setup.md +159 -0
  99. package/templates/base/skills/mobile/flutter/networking/rules/error-handling.md +209 -0
  100. package/templates/base/skills/mobile/flutter/networking/rules/interceptors.md +205 -0
  101. package/templates/base/skills/mobile/flutter/networking/rules/retrofit-patterns.md +194 -0
  102. package/templates/base/skills/mobile/flutter/push-notifications/SKILL.md +87 -0
  103. package/templates/base/skills/mobile/flutter/push-notifications/references/notification-architecture.md +340 -0
  104. package/templates/base/skills/mobile/flutter/push-notifications/references/platform-setup.md +286 -0
  105. package/templates/base/skills/mobile/flutter/push-notifications/rules/background-processing.md +308 -0
  106. package/templates/base/skills/mobile/flutter/push-notifications/rules/deep-linking.md +217 -0
  107. package/templates/base/skills/mobile/flutter/push-notifications/rules/fcm-setup.md +164 -0
  108. package/templates/base/skills/mobile/flutter/push-notifications/rules/local-notifications.md +262 -0
  109. package/templates/base/skills/mobile/flutter/push-notifications/rules/notification-handling.md +210 -0
  110. package/templates/base/skills/mobile/flutter/push-notifications/rules/notification-permissions.md +246 -0
  111. package/templates/base/skills/mobile/flutter/push-notifications/rules/rich-notifications.md +320 -0
  112. package/templates/base/skills/mobile/flutter/references/freezed-patterns.md +162 -0
  113. package/templates/base/skills/mobile/flutter/references/project-structure.md +170 -0
  114. package/templates/base/skills/mobile/flutter/rules/animations.md +112 -0
  115. package/templates/base/skills/mobile/flutter/rules/architecture.md +121 -0
  116. package/templates/base/skills/mobile/flutter/rules/navigation-routing.md +117 -0
  117. package/templates/base/skills/mobile/flutter/rules/performance.md +112 -0
  118. package/templates/base/skills/mobile/flutter/rules/platform-adaptive.md +126 -0
  119. package/templates/base/skills/mobile/flutter/rules/state-management.md +110 -0
  120. package/templates/base/skills/mobile/flutter/rules/testing.md +131 -0
  121. package/templates/base/skills/mobile/flutter/rules/widget-conventions.md +122 -0
  122. package/templates/base/skills/mobile/flutter/security/SKILL.md +86 -0
  123. package/templates/base/skills/mobile/flutter/security/references/mobile-security-checklist.md +168 -0
  124. package/templates/base/skills/mobile/flutter/security/rules/api-key-protection.md +206 -0
  125. package/templates/base/skills/mobile/flutter/security/rules/authentication.md +248 -0
  126. package/templates/base/skills/mobile/flutter/security/rules/data-protection.md +271 -0
  127. package/templates/base/skills/mobile/flutter/security/rules/obfuscation.md +213 -0
  128. package/templates/base/skills/mobile/flutter/security/rules/secure-storage.md +171 -0
  129. package/templates/base/skills/mobile/flutter/security/rules/ssl-pinning.md +197 -0
  130. package/templates/platforms/claude-code/CLAUDE.md.template +25 -0
  131. package/templates/platforms/claude-code/scripts/completion-guard.sh +57 -0
  132. package/templates/platforms/claude-code/scripts/phase-guard.sh +79 -0
  133. package/templates/platforms/claude-code/settings.json +75 -3
  134. package/templates/project-types/mobile-app/config.yaml +123 -0
  135. package/templates/project-types/mobile-app/process/workflow.xml +191 -0
package/dist/index.js CHANGED
@@ -20,7 +20,9 @@ import { registerMetaIndexCommand } from './commands/meta-index.js';
20
20
  import { registerKnowledgeCommand } from './commands/knowledge.js';
21
21
  import { registerWorkflowCommand } from './commands/workflow.js';
22
22
  import { registerDaemonCommand } from './commands/daemon.js';
23
+ import { registerSkillsCommand } from './commands/skills.js';
23
24
  import { registerUpgradeCommand } from './commands/upgrade.js';
25
+ import { registerCompileCommand } from './commands/compile.js';
24
26
  import { checkForUpdates } from './lib/update-check.js';
25
27
  import { getInstalledVersion } from './lib/version.js';
26
28
  const program = new Command();
@@ -49,6 +51,8 @@ registerMetaIndexCommand(program);
49
51
  registerKnowledgeCommand(program);
50
52
  registerWorkflowCommand(program);
51
53
  registerDaemonCommand(program);
54
+ registerSkillsCommand(program);
55
+ registerCompileCommand(program);
52
56
  registerUpgradeCommand(program);
53
57
  // Default action (show help)
54
58
  program.action(() => {
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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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Compile rules for SSOT → agent-facing spec transformation.
3
+ *
4
+ * Rules are declarative: define source, split strategy, output location,
5
+ * and required fields for schema validation.
6
+ * No AI interpretation — deterministic structural extraction only.
7
+ */
8
+ /** How to split a source document into multiple spec files */
9
+ export type SplitStrategy = 'h2' | 'h3' | 'none';
10
+ /** Where compiled output goes within controller skill */
11
+ export type OutputTarget = 'references' | 'rules';
12
+ /** A single compile rule mapping SSOT source → spec output */
13
+ export interface CompileRule {
14
+ /** SSOT filename without extension (e.g., 'service-spec') */
15
+ source: string;
16
+ /** Output target directory within controller skill */
17
+ output: OutputTarget;
18
+ /** How to split the document */
19
+ splitBy: SplitStrategy;
20
+ /** Output filename pattern. Available vars: {section}, {method}, {path}, {entity} */
21
+ filenamePattern: string;
22
+ /** Required fields in each section for schema validation */
23
+ requiredFields: string[];
24
+ /** Human-readable description */
25
+ description: string;
26
+ }
27
+ /** Metadata embedded in compiled spec files */
28
+ export interface CompileMarker {
29
+ /** Original SSOT file path (relative to .timsquad/) */
30
+ source: string;
31
+ /** Section anchor in source (e.g., 'POST-auth-login') */
32
+ section: string;
33
+ /** MD5 hash of source section content */
34
+ ssotHash: string;
35
+ /** ISO 8601 compilation timestamp */
36
+ compiledAt: string;
37
+ }
38
+ /** Manifest entry for stale detection */
39
+ export interface ManifestEntry {
40
+ source: string;
41
+ ssotHash: string;
42
+ compiledAt: string;
43
+ outputFiles: string[];
44
+ }
45
+ /** Full compile manifest */
46
+ export interface CompileManifest {
47
+ version: string;
48
+ compiledAt: string;
49
+ entries: ManifestEntry[];
50
+ }
51
+ /**
52
+ * Default compile rules for all SSOT document types.
53
+ * Rules match SSOT template structure (H2=domain, H3=endpoint, H4=detail).
54
+ */
55
+ export declare const COMPILE_RULES: CompileRule[];
56
+ /**
57
+ * Get compile rules for a given set of SSOT documents.
58
+ * Filters rules to only include sources that exist.
59
+ */
60
+ export declare function getCompileRules(availableSsotDocs: string[]): CompileRule[];
61
+ /**
62
+ * Get the default compile rule for SSOT documents not in COMPILE_RULES.
63
+ * Falls back to a generic no-split rule.
64
+ */
65
+ export declare function getDefaultRule(source: string): CompileRule;
66
+ //# sourceMappingURL=compile-rules.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Compile rules for SSOT → agent-facing spec transformation.
3
+ *
4
+ * Rules are declarative: define source, split strategy, output location,
5
+ * and required fields for schema validation.
6
+ * No AI interpretation — deterministic structural extraction only.
7
+ */
8
+ /**
9
+ * Default compile rules for all SSOT document types.
10
+ * Rules match SSOT template structure (H2=domain, H3=endpoint, H4=detail).
11
+ */
12
+ export const COMPILE_RULES = [
13
+ {
14
+ source: 'service-spec',
15
+ output: 'references',
16
+ splitBy: 'h3',
17
+ filenamePattern: '{section}.spec.md',
18
+ requiredFields: ['Endpoint', 'Request', 'Response'],
19
+ description: 'API 엔드포인트별 분할 (H3 = 개별 API)',
20
+ },
21
+ {
22
+ source: 'data-design',
23
+ output: 'references',
24
+ splitBy: 'h2',
25
+ filenamePattern: '{section}.spec.md',
26
+ requiredFields: ['Fields'],
27
+ description: '엔티티별 분할 (H2 = 테이블/모델)',
28
+ },
29
+ {
30
+ source: 'error-codes',
31
+ output: 'references',
32
+ splitBy: 'none',
33
+ filenamePattern: 'error-codes.spec.md',
34
+ requiredFields: ['Code', 'HTTP', 'Description'],
35
+ description: '에러 코드 전체 (분할 없음)',
36
+ },
37
+ {
38
+ source: 'requirements',
39
+ output: 'rules',
40
+ splitBy: 'none',
41
+ filenamePattern: 'completion-criteria.md',
42
+ requiredFields: ['ID', 'Priority'],
43
+ description: '요건 목록 → 완료 기준 규칙',
44
+ },
45
+ {
46
+ source: 'functional-spec',
47
+ output: 'references',
48
+ splitBy: 'h2',
49
+ filenamePattern: '{section}.spec.md',
50
+ requiredFields: [],
51
+ description: '기능 시나리오별 분할',
52
+ },
53
+ {
54
+ source: 'ui-ux-spec',
55
+ output: 'references',
56
+ splitBy: 'h2',
57
+ filenamePattern: '{section}.spec.md',
58
+ requiredFields: [],
59
+ description: 'UI/UX 화면별 분할',
60
+ },
61
+ {
62
+ source: 'security-spec',
63
+ output: 'rules',
64
+ splitBy: 'none',
65
+ filenamePattern: 'security-constraints.md',
66
+ requiredFields: [],
67
+ description: '보안 요건 → 제약 규칙',
68
+ },
69
+ {
70
+ source: 'test-spec',
71
+ output: 'references',
72
+ splitBy: 'none',
73
+ filenamePattern: 'test-spec.spec.md',
74
+ requiredFields: [],
75
+ description: '테스트 명세 (분할 없음)',
76
+ },
77
+ {
78
+ source: 'data-design',
79
+ output: 'references',
80
+ splitBy: 'h2',
81
+ filenamePattern: '{section}.spec.md',
82
+ requiredFields: ['Fields'],
83
+ description: '데이터 모델별 분할',
84
+ },
85
+ ];
86
+ /**
87
+ * Get compile rules for a given set of SSOT documents.
88
+ * Filters rules to only include sources that exist.
89
+ */
90
+ export function getCompileRules(availableSsotDocs) {
91
+ // Deduplicate rules by source (first rule wins)
92
+ const seen = new Set();
93
+ return COMPILE_RULES.filter((rule) => {
94
+ if (seen.has(rule.source))
95
+ return false;
96
+ seen.add(rule.source);
97
+ return availableSsotDocs.includes(rule.source);
98
+ });
99
+ }
100
+ /**
101
+ * Get the default compile rule for SSOT documents not in COMPILE_RULES.
102
+ * Falls back to a generic no-split rule.
103
+ */
104
+ export function getDefaultRule(source) {
105
+ return {
106
+ source,
107
+ output: 'references',
108
+ splitBy: 'none',
109
+ filenamePattern: `${source}.spec.md`,
110
+ requiredFields: [],
111
+ description: `${source} (기본 규칙, 분할 없음)`,
112
+ };
113
+ }
114
+ //# sourceMappingURL=compile-rules.js.map
@@ -0,0 +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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * SSOT Compiler: Transforms human-written SSOT documents into
3
+ * agent-facing spec files for the controller skill (Context DI).
4
+ *
5
+ * Design principles:
6
+ * - Deterministic extraction only (no AI interpretation)
7
+ * - Section markers for traceability (source, hash, timestamp)
8
+ * - Schema validation for completeness checking
9
+ * - Stale detection via compile manifest
10
+ */
11
+ import { type CompileRule, type CompileManifest, type CompileMarker } from './compile-rules.js';
12
+ /** A parsed section from an SSOT markdown document */
13
+ export interface ParsedSection {
14
+ /** Heading text (e.g., "2.1 로그인") */
15
+ heading: string;
16
+ /** Heading level (2 = H2, 3 = H3) */
17
+ level: number;
18
+ /** Full content including heading and body */
19
+ content: string;
20
+ /** Slugified anchor (e.g., "POST-auth-login") */
21
+ anchor: string;
22
+ /** Parent section heading (for H3 under H2) */
23
+ parent?: string;
24
+ }
25
+ /** Validation result for a compiled spec */
26
+ export interface ValidationResult {
27
+ source: string;
28
+ totalSections: number;
29
+ validSections: number;
30
+ missingFields: Array<{
31
+ section: string;
32
+ fields: string[];
33
+ }>;
34
+ score: number;
35
+ }
36
+ /** Overall compile result */
37
+ export interface CompileResult {
38
+ success: boolean;
39
+ compiled: Array<{
40
+ source: string;
41
+ outputFiles: string[];
42
+ }>;
43
+ validations: ValidationResult[];
44
+ skipped: string[];
45
+ errors: string[];
46
+ }
47
+ /**
48
+ * Parse a markdown document into sections by heading level.
49
+ */
50
+ export declare function parseMarkdownSections(content: string, splitBy: 'h2' | 'h3'): ParsedSection[];
51
+ /**
52
+ * Slugify a heading into a URL-safe anchor.
53
+ * "2.1 로그인" → "2-1-로그인"
54
+ * "POST /auth/login" → "POST-auth-login"
55
+ */
56
+ export declare function slugify(text: string): string;
57
+ /**
58
+ * Check if a section contains the required fields.
59
+ * Looks for field names in table headers or bold text.
60
+ */
61
+ export declare function validateSectionFields(content: string, requiredFields: string[]): string[];
62
+ /** Generate section markers as HTML comments */
63
+ export declare function generateMarkers(marker: CompileMarker): string;
64
+ /** Compute MD5 hash of content */
65
+ export declare function computeHash(content: string): string;
66
+ /**
67
+ * Compile a single SSOT document according to its rule.
68
+ * Returns list of output file paths (relative to controller skill dir).
69
+ */
70
+ export declare function compileSsotDocument(ssotPath: string, rule: CompileRule, controllerDir: string, sourceName: string): Promise<{
71
+ outputFiles: string[];
72
+ validation: ValidationResult;
73
+ }>;
74
+ /**
75
+ * Compile all SSOT documents in a project.
76
+ *
77
+ * @param projectRoot Project root directory
78
+ * @param controllerDir Path to controller skill dir (.claude/skills/controller)
79
+ * @returns CompileResult with all outputs and validation
80
+ */
81
+ export declare function compileAll(projectRoot: string, controllerDir: string): Promise<CompileResult>;
82
+ /**
83
+ * Load existing manifest. Returns null if not found.
84
+ */
85
+ export declare function loadManifest(controllerDir: string): Promise<CompileManifest | null>;
86
+ /**
87
+ * Check which SSOT documents are stale (changed since last compile).
88
+ */
89
+ export declare function checkStale(projectRoot: string, controllerDir: string): Promise<Array<{
90
+ source: string;
91
+ reason: string;
92
+ }>>;
93
+ /**
94
+ * Parse agent prerequisites from agent markdown files.
95
+ * Extracts from <prerequisites> XML tag.
96
+ */
97
+ export declare function parseAgentPrerequisites(content: string): string[];
98
+ /**
99
+ * Validate that all agent prerequisites can be resolved from compiled specs.
100
+ */
101
+ export declare function validateDependencyGraph(projectRoot: string, controllerDir: string): Promise<Array<{
102
+ agent: string;
103
+ missing: string[];
104
+ }>>;
105
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/lib/compiler.ts"],"names":[],"mappings":"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"}