create-specment 0.2.9 → 0.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 (137) hide show
  1. package/README.md +25 -1
  2. package/bin/commands/create.d.ts +0 -1
  3. package/bin/constants/languages.d.ts +0 -1
  4. package/bin/core/interactive-setup.d.ts +0 -1
  5. package/bin/core/interactive-setup.js +20 -19
  6. package/bin/core/interactive-setup.js.map +1 -1
  7. package/bin/core/interactive-setup.test.d.ts +0 -1
  8. package/bin/core/interactive-setup.test.js +7 -7
  9. package/bin/core/interactive-setup.test.js.map +1 -1
  10. package/bin/core/project-generator.d.ts +0 -1
  11. package/bin/core/project-generator.js +5 -8
  12. package/bin/core/project-generator.js.map +1 -1
  13. package/bin/features/index.d.ts +0 -1
  14. package/bin/features/index.js +15 -13
  15. package/bin/features/index.js.map +1 -1
  16. package/bin/generators/docusaurus-config.d.ts +0 -1
  17. package/bin/generators/docusaurus-config.js +211 -264
  18. package/bin/generators/docusaurus-config.js.map +1 -1
  19. package/bin/generators/package-json.d.ts +0 -1
  20. package/bin/generators/package-json.js +45 -91
  21. package/bin/generators/package-json.js.map +1 -1
  22. package/bin/generators/template-files.d.ts +0 -1
  23. package/bin/generators/template-files.js +563 -168
  24. package/bin/generators/template-files.js.map +1 -1
  25. package/bin/index.d.ts +0 -1
  26. package/bin/index.js.map +1 -1
  27. package/bin/templates/index.d.ts +0 -1
  28. package/bin/templates/index.js +36 -24
  29. package/bin/templates/index.js.map +1 -1
  30. package/bin/tests/integration.test.d.ts +0 -1
  31. package/bin/tests/integration.test.js +34 -34
  32. package/bin/tests/integration.test.js.map +1 -1
  33. package/bin/types/index.d.ts +1 -21
  34. package/bin/utils/config-merger.d.ts +0 -1
  35. package/bin/utils/config-merger.js +0 -1
  36. package/bin/utils/config-merger.js.map +1 -1
  37. package/bin/utils/errors.d.ts +0 -1
  38. package/bin/utils/install.d.ts +0 -1
  39. package/bin/utils/install.js +3 -3
  40. package/bin/utils/install.js.map +1 -1
  41. package/bin/utils/message-formatter.d.ts +0 -1
  42. package/bin/utils/template-processor.d.ts +0 -1
  43. package/bin/utils/template-processor.js +2 -3
  44. package/bin/utils/template-processor.js.map +1 -1
  45. package/bin/utils/template-processor.test.d.ts +0 -1
  46. package/bin/utils/template-processor.test.js +22 -22
  47. package/bin/utils/template-processor.test.js.map +1 -1
  48. package/bin/utils/version.d.ts +0 -1
  49. package/bin/utils/version.js +3 -3
  50. package/bin/utils/version.js.map +1 -1
  51. package/package.json +2 -7
  52. package/templates/docs/01-overview/_requirements-specification.mdx +1 -5
  53. package/templates/docs/01-overview/img/swot.drawio.svg +303 -0
  54. package/templates/docs/01-overview/index.mdx +3 -1
  55. package/templates/docs/01-overview/project-proposal.mdx +146 -0
  56. package/templates/docs/01-overview/roadmap.mdx +1 -1
  57. package/templates/docs/01-overview/swot-analysis.mdx +199 -0
  58. package/templates/docs/01-overview/system-context.mdx +1 -1
  59. package/templates/docs/01-overview/to-be.mdx +1 -1
  60. package/templates/docs/02-requirements/functional/_req-template.mdx +0 -3
  61. package/templates/docs/02-requirements/functional/req-001.mdx +0 -4
  62. package/templates/docs/02-requirements/non-functional/_nfr-template.mdx +0 -3
  63. package/templates/docs/02-requirements/non-functional/nfr-001.mdx +0 -3
  64. package/templates/docs/02-requirements/non-functional/nfr-002.mdx +0 -3
  65. package/templates/docs/03-external/business-model.mdx +1 -1
  66. package/templates/docs/03-external/index.mdx +1 -1
  67. package/templates/docs/04-internal/batches/import-products.mdx +2 -6
  68. package/templates/docs/04-internal/policies/github.mdx +1 -1
  69. package/templates/docs/04-internal/rules/database.mdx +1 -1
  70. package/templates/docs/04-internal/screens/dashboard.mdx +1 -1
  71. package/templates/docs/04-internal/screens/index.mdx +1 -1
  72. package/templates/docs/04-internal/screens/login.mdx +1 -1
  73. package/templates/docs/04-internal/screens/menu.mdx +1 -1
  74. package/templates/docs/index.module.css +96 -0
  75. package/templates/docs/index.tsx +48 -0
  76. package/templates/docs/introduction/index.mdx +1 -1
  77. package/templates/docs/introduction/operational-policies/sharepoint.mdx +1 -1
  78. package/templates/package.json.template +46 -0
  79. package/templates/src/components/Highlight/index.tsx +68 -0
  80. package/templates/src/components/PriorityMatrix/index.tsx +97 -0
  81. package/templates/src/components/TBD/index.tsx +16 -0
  82. package/templates/src/css/custom.css +81 -0
  83. package/templates/src/types/requirements.ts +19 -0
  84. package/templates/static/img/business-model.drawio.svg +4 -0
  85. package/templates/static/img/gantt.drawio.svg +1152 -0
  86. package/templates/static/img/logo.svg +21 -0
  87. package/bin/commands/create.d.ts.map +0 -1
  88. package/bin/constants/languages.d.ts.map +0 -1
  89. package/bin/core/interactive-setup.d.ts.map +0 -1
  90. package/bin/core/interactive-setup.test.d.ts.map +0 -1
  91. package/bin/core/project-generator.d.ts.map +0 -1
  92. package/bin/features/index.d.ts.map +0 -1
  93. package/bin/generators/docusaurus-config.d.ts.map +0 -1
  94. package/bin/generators/package-json.d.ts.map +0 -1
  95. package/bin/generators/template-files.d.ts.map +0 -1
  96. package/bin/index.d.ts.map +0 -1
  97. package/bin/plugins/i18n-integration.d.ts +0 -25
  98. package/bin/plugins/i18n-integration.d.ts.map +0 -1
  99. package/bin/plugins/i18n-integration.js +0 -310
  100. package/bin/plugins/i18n-integration.js.map +0 -1
  101. package/bin/plugins/plantuml-integration.d.ts +0 -17
  102. package/bin/plugins/plantuml-integration.d.ts.map +0 -1
  103. package/bin/plugins/plantuml-integration.js +0 -112
  104. package/bin/plugins/plantuml-integration.js.map +0 -1
  105. package/bin/plugins/redoc-integration.d.ts +0 -25
  106. package/bin/plugins/redoc-integration.d.ts.map +0 -1
  107. package/bin/plugins/redoc-integration.js +0 -373
  108. package/bin/plugins/redoc-integration.js.map +0 -1
  109. package/bin/plugins/search-integration.d.ts +0 -20
  110. package/bin/plugins/search-integration.d.ts.map +0 -1
  111. package/bin/plugins/search-integration.js +0 -169
  112. package/bin/plugins/search-integration.js.map +0 -1
  113. package/bin/templates/index.d.ts.map +0 -1
  114. package/bin/templates/template-definitions.d.ts +0 -10
  115. package/bin/templates/template-definitions.d.ts.map +0 -1
  116. package/bin/templates/template-definitions.js +0 -517
  117. package/bin/templates/template-definitions.js.map +0 -1
  118. package/bin/tests/integration.test.d.ts.map +0 -1
  119. package/bin/types/index.d.ts.map +0 -1
  120. package/bin/utils/config-merger.d.ts.map +0 -1
  121. package/bin/utils/errors.d.ts.map +0 -1
  122. package/bin/utils/install.d.ts.map +0 -1
  123. package/bin/utils/message-formatter.d.ts.map +0 -1
  124. package/bin/utils/template-processor.d.ts.map +0 -1
  125. package/bin/utils/template-processor.test.d.ts.map +0 -1
  126. package/bin/utils/version.d.ts.map +0 -1
  127. package/templates/classic-spec/docusaurus.config.js.template +0 -106
  128. package/templates/classic-spec/package.json.template +0 -36
  129. package/templates/docs/example.drawio.svg +0 -57
  130. package/templates/external-design/docusaurus.config.js.template +0 -123
  131. package/templates/external-design/package.json.template +0 -36
  132. package/templates/internal-design/docusaurus.config.js.template +0 -123
  133. package/templates/internal-design/package.json.template +0 -36
  134. package/templates/project-analysis/docusaurus.config.js.template +0 -113
  135. package/templates/project-analysis/package.json.template +0 -36
  136. package/templates/requirements/docusaurus.config.js.template +0 -119
  137. package/templates/requirements/package.json.template +0 -36
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { TemplateProcessor, createTemplateProcessor } from './template-processor.js';
3
- describe('TemplateProcessor', () => {
3
+ describe('テンプレートプロセッサー', () => {
4
4
  let processor;
5
5
  beforeEach(() => {
6
6
  processor = new TemplateProcessor({
@@ -9,45 +9,45 @@ describe('TemplateProcessor', () => {
9
9
  email: 'test@example.com',
10
10
  });
11
11
  });
12
- describe('processTemplate', () => {
13
- it('should replace simple variables', () => {
12
+ describe('テンプレート処理', () => {
13
+ it('単純な変数を置換できること', () => {
14
14
  const template = 'Hello {{projectName}}!';
15
15
  const result = processor.processTemplate(template);
16
16
  expect(result).toBe('Hello test-project!');
17
17
  });
18
- it('should replace multiple variables', () => {
18
+ it('複数の変数を置換できること', () => {
19
19
  const template = 'Project: {{projectName}}, Author: {{author}}';
20
20
  const result = processor.processTemplate(template);
21
21
  expect(result).toBe('Project: test-project, Author: Test Author');
22
22
  });
23
- it('should handle undefined variables gracefully', () => {
23
+ it('未定義変数を適切に処理できること', () => {
24
24
  const template = 'Hello {{unknownVariable}}!';
25
25
  const result = processor.processTemplate(template);
26
26
  expect(result).toBe('Hello {{unknownVariable}}!');
27
27
  });
28
- it('should handle templates with no variables', () => {
28
+ it('変数のないテンプレートを処理できること', () => {
29
29
  const template = 'This is a plain text template';
30
30
  const result = processor.processTemplate(template);
31
31
  expect(result).toBe('This is a plain text template');
32
32
  });
33
- it('should handle empty template', () => {
33
+ it('空のテンプレートを処理できること', () => {
34
34
  const template = '';
35
35
  const result = processor.processTemplate(template);
36
36
  expect(result).toBe('');
37
37
  });
38
- it('should handle malformed variable syntax', () => {
38
+ it('不正な変数構文を処理できること', () => {
39
39
  const template = 'Hello {projectName} and {{author}';
40
40
  const result = processor.processTemplate(template);
41
41
  expect(result).toBe('Hello {projectName} and {{author}');
42
42
  });
43
43
  });
44
- describe('setVariable and setVariables', () => {
45
- it('should set single variable', () => {
44
+ describe('変数設定', () => {
45
+ it('単一変数を設定できること', () => {
46
46
  processor.setVariable('customVar', 'custom value');
47
47
  const result = processor.processTemplate('{{customVar}}');
48
48
  expect(result).toBe('custom value');
49
49
  });
50
- it('should set multiple variables', () => {
50
+ it('複数変数を設定できること', () => {
51
51
  processor.setVariables({
52
52
  var1: 'value1',
53
53
  var2: 'value2',
@@ -55,14 +55,14 @@ describe('TemplateProcessor', () => {
55
55
  const result = processor.processTemplate('{{var1}} and {{var2}}');
56
56
  expect(result).toBe('value1 and value2');
57
57
  });
58
- it('should override existing variables', () => {
58
+ it('既存変数を上書きできること', () => {
59
59
  processor.setVariable('projectName', 'new-project-name');
60
60
  const result = processor.processTemplate('{{projectName}}');
61
61
  expect(result).toBe('new-project-name');
62
62
  });
63
63
  });
64
- describe('generateDerivedVariables', () => {
65
- it('should generate derived variables from project name', () => {
64
+ describe('派生変数生成', () => {
65
+ it('プロジェクト名から派生変数を生成できること', () => {
66
66
  const processor = new TemplateProcessor({ projectName: 'my-awesome-project' });
67
67
  processor.generateDerivedVariables();
68
68
  const variables = processor.getVariables();
@@ -71,7 +71,7 @@ describe('TemplateProcessor', () => {
71
71
  expect(variables.projectNameConstant).toBe('MY_AWESOME_PROJECT');
72
72
  expect(variables.projectNameKebab).toBe('my-awesome-project');
73
73
  });
74
- it('should handle single word project names', () => {
74
+ it('単語のプロジェクト名を処理できること', () => {
75
75
  const processor = new TemplateProcessor({ projectName: 'project' });
76
76
  processor.generateDerivedVariables();
77
77
  const variables = processor.getVariables();
@@ -81,35 +81,35 @@ describe('TemplateProcessor', () => {
81
81
  expect(variables.projectNameKebab).toBe('project');
82
82
  });
83
83
  });
84
- describe('default variables', () => {
85
- it('should set default date and year', () => {
84
+ describe('デフォルト変数', () => {
85
+ it('デフォルトの日付と年を設定できること', () => {
86
86
  const processor = new TemplateProcessor({});
87
87
  const variables = processor.getVariables();
88
88
  expect(variables.date).toMatch(/^\d{4}-\d{2}-\d{2}$/); // YYYY-MM-DD format
89
89
  expect(variables.year).toMatch(/^\d{4}$/); // YYYY format
90
90
  });
91
- it('should set default project name', () => {
91
+ it('デフォルトのプロジェクト名を設定できること', () => {
92
92
  const processor = new TemplateProcessor({});
93
93
  const variables = processor.getVariables();
94
94
  expect(variables.projectName).toBe('my-project');
95
95
  });
96
96
  });
97
97
  });
98
- describe('createTemplateProcessor', () => {
99
- it('should create processor with project name', async () => {
98
+ describe('テンプレートプロセッサー作成', () => {
99
+ it('プロジェクト名でプロセッサーを作成できること', async () => {
100
100
  const processor = await createTemplateProcessor('test-project');
101
101
  const variables = processor.getVariables();
102
102
  expect(variables.projectName).toBe('test-project');
103
103
  expect(variables.description).toBe('Documentation for test-project');
104
104
  });
105
- it('should include derived variables', async () => {
105
+ it('派生変数を含むこと', async () => {
106
106
  const processor = await createTemplateProcessor('my-test-project');
107
107
  const variables = processor.getVariables();
108
108
  expect(variables.projectNameCamel).toBe('myTestProject');
109
109
  expect(variables.projectNamePascal).toBe('MyTestProject');
110
110
  expect(variables.projectNameConstant).toBe('MY_TEST_PROJECT');
111
111
  });
112
- it('should accept additional variables', async () => {
112
+ it('追加変数を受け入れること', async () => {
113
113
  const processor = await createTemplateProcessor('test-project', {
114
114
  customVar: 'custom value',
115
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"template-processor.test.js","sourceRoot":"","sources":["../../src/utils/template-processor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-processor.test.js","sourceRoot":"","sources":["../../src/utils/template-processor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAErF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,SAA4B,CAAC;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,iBAAiB,CAAC;YAChC,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,kBAAkB;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,MAAM,QAAQ,GAAG,wBAAwB,CAAC;YAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,MAAM,QAAQ,GAAG,8CAA8C,CAAC;YAChE,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,4BAA4B,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,MAAM,QAAQ,GAAG,+BAA+B,CAAC;YACjD,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACzB,MAAM,QAAQ,GAAG,mCAAmC,CAAC;YACrD,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YACtB,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YACtB,SAAS,CAAC,YAAY,CAAC;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,SAAS,CAAC,WAAW,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAC/E,SAAS,CAAC,wBAAwB,EAAE,CAAC;YAErC,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC5D,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7D,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YACpE,SAAS,CAAC,wBAAwB,EAAE,CAAC;YAErC,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;YAE3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB;YAC3E,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;YAE3C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAE3C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAE3C,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,cAAc,EAAE;YAC9D,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAE3C,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +1 @@
1
1
  export declare const version: any;
2
- //# sourceMappingURL=version.d.ts.map
@@ -1,6 +1,6 @@
1
- import { readFileSync } from 'node:fs';
2
- import { fileURLToPath } from 'node:url';
3
- import { dirname, join } from 'node:path';
1
+ import { readFileSync } from 'fs';
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
4
  const __filename = fileURLToPath(import.meta.url);
5
5
  const __dirname = dirname(__filename);
6
6
  // Read version from package.json
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,iCAAiC;AACjC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,iCAAiC;AACjC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-specment",
3
- "version": "0.2.9",
3
+ "version": "0.4.0",
4
4
  "description": "Interactive CLI tool for creating Docusaurus-based specification documentation projects",
5
5
  "type": "module",
6
6
  "author": "Plenarc",
@@ -39,17 +39,12 @@
39
39
  "typecheck": "tsc --noEmit"
40
40
  },
41
41
  "dependencies": {
42
- "@antfu/ni": "^28.0.0",
43
42
  "@clack/prompts": "^0.11.0",
44
43
  "chalk": "^5.6.2",
45
- "commander": "^14.0.2",
46
- "fs-extra": "^11.3.3",
47
- "inquirer": "^13.1.0"
44
+ "commander": "^14.0.2"
48
45
  },
49
46
  "devDependencies": {
50
47
  "@biomejs/biome": "^2.3.10",
51
- "@types/fs-extra": "^11.0.4",
52
- "@types/inquirer": "^9.0.9",
53
48
  "@types/node": "^25.0.3",
54
49
  "typescript": "^5.9.3",
55
50
  "vitest": "^4.0.16"
@@ -52,12 +52,8 @@ sidebar_position: 8
52
52
  1. コツはアウトプットから先に書く
53
53
  1. 得たい結果からシステムを通して誰がどんなインプットをするか書き出す
54
54
 
55
- ```plantuml
55
+ ```pumld
56
56
  @startuml
57
- !define uml https://raw.githubusercontent.com/flatring/plantuml-stencils/main
58
- !include uml/colorset/ocean-blue.iuml
59
- !include uml/colorset/_skinparams.iuml
60
-
61
57
  left to right direction
62
58
  skinparam packageStyle rectangle
63
59
  actor 利用者 as customer
@@ -0,0 +1,303 @@
1
+ <svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="447px" height="342px" viewBox="-0.5 -0.5 447 342" content="&lt;mxfile&gt;&lt;diagram name=&quot;SWOT分析&quot; id=&quot;swot-analysis&quot;&gt;7VpRj6MqGP01JHvfBJTCozp2NzfZ7E26yTxbpdWslcYy25n76y9YaGtlZmfvqu0knYcOHkDKOXwH/CzA8eb5c5Nui68i5xVAXv4M8ANAaMaw+tTAywGgs+AArJsyP0DwBCzKf7kBPYM+lTnfdRpKISpZbrtgJuqaZ7KDpU0j9t1mK1F1R92ma94DFlla9dHHMpeFmQWanfAvvFwXdmRI2KFmk9rGZia7Is3F/gzCCcBxI4Q8lDbPMa80d5aXQ7/5K7XHL9bwWr6nAzp0+JlWT2Zu5nvJFzvZRjzVOdftPYCjfVFKvtimma7dK3UVVshNpa6gKq7KqopFJZq2L16tVijLFL6TjfjBz2pysiQBOdZYGhUBUX8OZlo/eSP58xlk5vSZiw2XzYtqYmuJ4dcsMGj53p/kQp7BinOpAgOmZomsj/c+sagKhkg3qXhcUvOU05WTVJJRvlyNRSq+Kqn+yKQGnOa+i1SKlphMtlLRbEpSg5HDn2bcHf5LGviBN9VKnZZU0ic1CUAUg2gGEgwoBNEcIFKpMaNlo0prXfq0kGrGa1ns/uppoKYtu0R3Ca1FzS/YN1BaletaXWaKTK7wSJNYqp0sNBWbMs/1ME5lu9qvRC3NXgyJvTZfEprrebopK836l7RWc4jVzq/+/f2PqT5bAV77N4ze6m5dZ8J9vYlDbjyA2rOe2ovb18+nr+h3JtADIgwmIwnkCEiXQP4AAlFHOM4Ai0CYgISAkALGQMJ0XDJfI1QhnonUMNKxG/ogtLFLH2zBEcQgoSBCIGyHoHE7RNtYD6EKCNDIFpAdIrn99QLRyAHsXRi242hxPG4MHcHsVb+Gb/n1I09/1Hy343fD/m29/Ssatn2IPNP78fYFfI9jw4R58/lICk3o2BD2FPody05cvqxMvO1o7PhovhYJw7tBv7UcrmnQ0JGl0MuAATYHia+tmoUOh/623YpGPtWlLO8m/eeHNkQnNOl+DuXb7Qv4HpNWNEZooOfcS4WwIypHM2lHQubkxCo0A/u8i1q79fUpiuLeefhDuuyVAvLChLFjTx7PhB25IvW0Q31Ag3Z7pVrFvgl/Lxqeyrv9/vEJbFL77eewvt++gO/KasTQV/MfRaFJ7befd3rTfp3n3w9/2r1SZF7Vh135LKx3VjYzhdBurhHTFq2EV7qqFaAfoLwPoK5/Ecbe/1CbkHigKD/ufPZldV9sNpbWrtTUQevESBz6BqHhXfThRPeh9yvRoesF0hCqW+e4SEhS0p60WBvhtE2IKLG91tqRBj+mxo2QqSyFvqt+TfdL0fOy4ZnpwNOdHHcdwAurhxMewpArDda+jGDkvg4mFB3b9+TDi64uTz/2aevOfjGFk/8A&lt;/diagram&gt;&lt;/mxfile&gt;">
2
+ <defs/>
3
+ <g>
4
+ <rect x="45" y="40" width="200" height="150" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/>
5
+ <rect x="245" y="40" width="200" height="150" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/>
6
+ <rect x="45" y="190" width="200" height="150" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/>
7
+ <rect x="245" y="190" width="200" height="150" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/>
8
+ <rect x="115" y="50" width="60" height="30" fill="none" stroke="none" pointer-events="all"/>
9
+ <g transform="translate(-0.5 -0.5)">
10
+ <switch>
11
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
12
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 65px; margin-left: 116px;">
13
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
14
+ <div style="display: inline-block; font-size: 16px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
15
+ 強み
16
+ <br/>
17
+ (Strengths)
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </foreignObject>
22
+ <text x="145" y="70" fill="#000000" font-family="Han Code JP" font-size="16px" text-anchor="middle" font-weight="bold">
23
+ 強み(Streng...
24
+ </text>
25
+ </switch>
26
+ </g>
27
+ <rect x="115" y="90" width="60" height="40" fill="none" stroke="none" pointer-events="all"/>
28
+ <g transform="translate(-0.5 -0.5)">
29
+ <switch>
30
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
31
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 110px; margin-left: 116px;">
32
+ <div data-drawio-colors="color: #D2691E; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
33
+ <div style="display: inline-block; font-size: 48px; font-family: Helvetica; color: rgb(210, 105, 30); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
34
+ S
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </foreignObject>
39
+ <text x="145" y="124" fill="#D2691E" font-family="Helvetica" font-size="48px" text-anchor="middle" font-weight="bold">
40
+ S
41
+ </text>
42
+ </switch>
43
+ </g>
44
+ <rect x="85" y="140" width="120" height="30" fill="none" stroke="none" pointer-events="all"/>
45
+ <g transform="translate(-0.5 -0.5)">
46
+ <switch>
47
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
48
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 155px; margin-left: 86px;">
49
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
50
+ <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
51
+ 目標達成に大きく
52
+ <br/>
53
+ 貢献するもの
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </foreignObject>
58
+ <text x="145" y="159" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
59
+ 目標達成に大きく
60
+ 貢献するもの
61
+ </text>
62
+ </switch>
63
+ </g>
64
+ <rect x="315" y="50" width="60" height="30" fill="none" stroke="none" pointer-events="all"/>
65
+ <g transform="translate(-0.5 -0.5)">
66
+ <switch>
67
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
68
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 65px; margin-left: 316px;">
69
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
70
+ <div style="display: inline-block; font-size: 16px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
71
+ 弱み
72
+ <br/>
73
+ (Weaknesses)
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </foreignObject>
78
+ <text x="345" y="70" fill="#000000" font-family="Han Code JP" font-size="16px" text-anchor="middle" font-weight="bold">
79
+ 弱み(Weakne...
80
+ </text>
81
+ </switch>
82
+ </g>
83
+ <rect x="315" y="90" width="60" height="40" fill="none" stroke="none" pointer-events="all"/>
84
+ <g transform="translate(-0.5 -0.5)">
85
+ <switch>
86
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
87
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 110px; margin-left: 316px;">
88
+ <div data-drawio-colors="color: #1E90FF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
89
+ <div style="display: inline-block; font-size: 48px; font-family: Helvetica; color: rgb(30, 144, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
90
+ W
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </foreignObject>
95
+ <text x="345" y="124" fill="#1E90FF" font-family="Helvetica" font-size="48px" text-anchor="middle" font-weight="bold">
96
+ W
97
+ </text>
98
+ </switch>
99
+ </g>
100
+ <rect x="285" y="140" width="120" height="30" fill="none" stroke="none" pointer-events="all"/>
101
+ <g transform="translate(-0.5 -0.5)">
102
+ <switch>
103
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
104
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 155px; margin-left: 286px;">
105
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
106
+ <div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
107
+ 目標達成の
108
+ <br/>
109
+ 妨げとなるもの
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </foreignObject>
114
+ <text x="345" y="159" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
115
+ 目標達成の
116
+ 妨げとなるもの
117
+ </text>
118
+ </switch>
119
+ </g>
120
+ <rect x="115" y="200" width="60" height="30" fill="none" stroke="none" pointer-events="all"/>
121
+ <g transform="translate(-0.5 -0.5)">
122
+ <switch>
123
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
124
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 215px; margin-left: 116px;">
125
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
126
+ <div style="display: inline-block; font-size: 16px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
127
+ 機会
128
+ <br/>
129
+ (Opportunities)
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </foreignObject>
134
+ <text x="145" y="220" fill="#000000" font-family="Han Code JP" font-size="16px" text-anchor="middle" font-weight="bold">
135
+ 機会(Opport...
136
+ </text>
137
+ </switch>
138
+ </g>
139
+ <rect x="115" y="240" width="60" height="40" fill="none" stroke="none" pointer-events="all"/>
140
+ <g transform="translate(-0.5 -0.5)">
141
+ <switch>
142
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
143
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 260px; margin-left: 116px;">
144
+ <div data-drawio-colors="color: #228B22; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
145
+ <div style="display: inline-block; font-size: 48px; font-family: Helvetica; color: rgb(34, 139, 34); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
146
+ O
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </foreignObject>
151
+ <text x="145" y="274" fill="#228B22" font-family="Helvetica" font-size="48px" text-anchor="middle" font-weight="bold">
152
+ O
153
+ </text>
154
+ </switch>
155
+ </g>
156
+ <rect x="85" y="290" width="120" height="30" fill="none" stroke="none" pointer-events="all"/>
157
+ <g transform="translate(-0.5 -0.5)">
158
+ <switch>
159
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
160
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 305px; margin-left: 86px;">
161
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
162
+ <div style="display: inline-block; font-size: 12px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
163
+ 成長を促すもの
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </foreignObject>
168
+ <text x="145" y="309" fill="#000000" font-family="Han Code JP" font-size="12px" text-anchor="middle">
169
+ 成長を促すもの
170
+ </text>
171
+ </switch>
172
+ </g>
173
+ <rect x="315" y="200" width="60" height="30" fill="none" stroke="none" pointer-events="all"/>
174
+ <g transform="translate(-0.5 -0.5)">
175
+ <switch>
176
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
177
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 215px; margin-left: 316px;">
178
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
179
+ <div style="display: inline-block; font-size: 16px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
180
+ 脅威
181
+ <br/>
182
+ (Threats)
183
+ </div>
184
+ </div>
185
+ </div>
186
+ </foreignObject>
187
+ <text x="345" y="220" fill="#000000" font-family="Han Code JP" font-size="16px" text-anchor="middle" font-weight="bold">
188
+ 脅威(Threat...
189
+ </text>
190
+ </switch>
191
+ </g>
192
+ <rect x="315" y="240" width="60" height="40" fill="none" stroke="none" pointer-events="all"/>
193
+ <g transform="translate(-0.5 -0.5)">
194
+ <switch>
195
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
196
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 260px; margin-left: 316px;">
197
+ <div data-drawio-colors="color: #DC143C; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
198
+ <div style="display: inline-block; font-size: 48px; font-family: Helvetica; color: rgb(220, 20, 60); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
199
+ T
200
+ </div>
201
+ </div>
202
+ </div>
203
+ </foreignObject>
204
+ <text x="345" y="274" fill="#DC143C" font-family="Helvetica" font-size="48px" text-anchor="middle" font-weight="bold">
205
+ T
206
+ </text>
207
+ </switch>
208
+ </g>
209
+ <rect x="285" y="290" width="120" height="30" fill="none" stroke="none" pointer-events="all"/>
210
+ <g transform="translate(-0.5 -0.5)">
211
+ <switch>
212
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
213
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 305px; margin-left: 286px;">
214
+ <div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
215
+ <div style="display: inline-block; font-size: 12px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
216
+ 成長を妨げるもの
217
+ </div>
218
+ </div>
219
+ </div>
220
+ </foreignObject>
221
+ <text x="345" y="309" fill="#000000" font-family="Han Code JP" font-size="12px" text-anchor="middle">
222
+ 成長を妨げるもの
223
+ </text>
224
+ </switch>
225
+ </g>
226
+ <rect x="100" y="0" width="90" height="30" fill="none" stroke="none" pointer-events="all"/>
227
+ <g transform="translate(-0.5 -0.5)">
228
+ <switch>
229
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
230
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 15px; margin-left: 101px;">
231
+ <div data-drawio-colors="color: #0066CC; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
232
+ <div style="display: inline-block; font-size: 14px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 102, 204); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
233
+ プラス要因
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </foreignObject>
238
+ <text x="145" y="19" fill="#0066CC" font-family="Han Code JP" font-size="14px" text-anchor="middle">
239
+ プラス要因
240
+ </text>
241
+ </switch>
242
+ </g>
243
+ <rect x="295" y="0" width="100" height="30" fill="none" stroke="none" pointer-events="all"/>
244
+ <g transform="translate(-0.5 -0.5)">
245
+ <switch>
246
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
247
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 15px; margin-left: 296px;">
248
+ <div data-drawio-colors="color: #0066CC; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
249
+ <div style="display: inline-block; font-size: 14px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 102, 204); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
250
+ マイナス要因
251
+ </div>
252
+ </div>
253
+ </div>
254
+ </foreignObject>
255
+ <text x="345" y="19" fill="#0066CC" font-family="Han Code JP" font-size="14px" text-anchor="middle">
256
+ マイナス要因
257
+ </text>
258
+ </switch>
259
+ </g>
260
+ <rect x="-15" y="100" width="60" height="30" fill="none" stroke="none" transform="rotate(270,15,115)" pointer-events="all"/>
261
+ <g transform="translate(-0.5 -0.5)rotate(270 15 115)">
262
+ <switch>
263
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
264
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 115px; margin-left: -14px;">
265
+ <div data-drawio-colors="color: #0066CC; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
266
+ <div style="display: inline-block; font-size: 14px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 102, 204); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
267
+ 内部環境
268
+ </div>
269
+ </div>
270
+ </div>
271
+ </foreignObject>
272
+ <text x="15" y="119" fill="#0066CC" font-family="Han Code JP" font-size="14px" text-anchor="middle">
273
+ 内部環境
274
+ </text>
275
+ </switch>
276
+ </g>
277
+ <rect x="-15" y="245" width="60" height="30" fill="none" stroke="none" transform="rotate(270,15,260)" pointer-events="all"/>
278
+ <g transform="translate(-0.5 -0.5)rotate(270 15 260)">
279
+ <switch>
280
+ <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
281
+ <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 260px; margin-left: -14px;">
282
+ <div data-drawio-colors="color: #0066CC; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
283
+ <div style="display: inline-block; font-size: 14px; font-family: &quot;Han Code JP&quot;; color: rgb(0, 102, 204); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
284
+ 外部環境
285
+ </div>
286
+ </div>
287
+ </div>
288
+ </foreignObject>
289
+ <text x="15" y="264" fill="#0066CC" font-family="Han Code JP" font-size="14px" text-anchor="middle">
290
+ 外部環境
291
+ </text>
292
+ </switch>
293
+ </g>
294
+ </g>
295
+ <switch>
296
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
297
+ <a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
298
+ <text text-anchor="middle" font-size="10px" x="50%" y="100%">
299
+ Text is not SVG - cannot display
300
+ </text>
301
+ </a>
302
+ </switch>
303
+ </svg>
@@ -19,12 +19,14 @@ tags:
19
19
  ```text
20
20
  01-overview/
21
21
  ├ index.mdx ← このファイル
22
+ ├ project-proposal.mdx ← プロジェクト企画書
22
23
  ├ project-charter.mdx ← 上位ビジョン・非ゴール
23
24
  ├ odsc.mdx ← 目的(o)・成果物(d)・成功基準(sc)
24
25
  ├ as-is.mdx ← 現状分析
26
+ ├ swot-analysis.mdx ← SWOT分析
25
27
  ├ to-be.mdx ← 目指すべき姿
26
28
  ├ scope.mdx ← 機能・非機能スコープ
27
- ├ business-context.mdx ← 市場・ユーザ・背景
29
+ ├ business-context.mdx ← 市場・ユーザー・背景
28
30
  ├ stakeholders.mdx ← 役割責任表・RACI
29
31
  ├ assumptions-constraints.mdx ← 前提条件・制約
30
32
  ├ gap-analysis.mdx ← ギャップ分析