create-specment 0.2.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/commands/create.d.ts +0 -1
- package/bin/constants/languages.d.ts +0 -1
- package/bin/core/interactive-setup.d.ts +0 -1
- package/bin/core/interactive-setup.js +17 -10
- package/bin/core/interactive-setup.js.map +1 -1
- package/bin/core/interactive-setup.test.d.ts +0 -1
- package/bin/core/interactive-setup.test.js +7 -7
- package/bin/core/interactive-setup.test.js.map +1 -1
- package/bin/core/project-generator.d.ts +0 -1
- package/bin/core/project-generator.js +5 -8
- package/bin/core/project-generator.js.map +1 -1
- package/bin/features/index.d.ts +0 -1
- package/bin/features/index.js +15 -13
- package/bin/features/index.js.map +1 -1
- package/bin/generators/docusaurus-config.d.ts +0 -1
- package/bin/generators/docusaurus-config.js +211 -264
- package/bin/generators/docusaurus-config.js.map +1 -1
- package/bin/generators/package-json.d.ts +0 -1
- package/bin/generators/package-json.js +45 -91
- package/bin/generators/package-json.js.map +1 -1
- package/bin/generators/template-files.d.ts +0 -1
- package/bin/generators/template-files.js +563 -168
- package/bin/generators/template-files.js.map +1 -1
- package/bin/index.d.ts +0 -1
- package/bin/index.js.map +1 -1
- package/bin/templates/index.d.ts +0 -1
- package/bin/templates/index.js +36 -24
- package/bin/templates/index.js.map +1 -1
- package/bin/tests/integration.test.d.ts +0 -1
- package/bin/tests/integration.test.js +34 -34
- package/bin/tests/integration.test.js.map +1 -1
- package/bin/types/index.d.ts +1 -21
- package/bin/utils/config-merger.d.ts +0 -1
- package/bin/utils/config-merger.js +0 -1
- package/bin/utils/config-merger.js.map +1 -1
- package/bin/utils/errors.d.ts +0 -1
- package/bin/utils/install.d.ts +0 -1
- package/bin/utils/install.js +3 -3
- package/bin/utils/install.js.map +1 -1
- package/bin/utils/message-formatter.d.ts +0 -1
- package/bin/utils/template-processor.d.ts +0 -1
- package/bin/utils/template-processor.js +2 -3
- package/bin/utils/template-processor.js.map +1 -1
- package/bin/utils/template-processor.test.d.ts +0 -1
- package/bin/utils/template-processor.test.js +22 -22
- package/bin/utils/template-processor.test.js.map +1 -1
- package/bin/utils/version.d.ts +0 -1
- package/bin/utils/version.js +3 -3
- package/bin/utils/version.js.map +1 -1
- package/package.json +2 -7
- package/templates/docs/01-overview/_requirements-specification.mdx +1 -5
- package/templates/docs/01-overview/as-is.mdx +1 -1
- package/templates/docs/01-overview/glossary.mdx +6 -6
- package/templates/docs/01-overview/odsc.mdx +1 -1
- package/templates/docs/01-overview/to-be.mdx +6 -6
- package/templates/docs/02-requirements/functional/_req-template.mdx +0 -3
- package/templates/docs/02-requirements/functional/req-001.mdx +0 -4
- package/templates/docs/02-requirements/non-functional/_nfr-template.mdx +0 -3
- package/templates/docs/02-requirements/non-functional/nfr-001.mdx +0 -3
- package/templates/docs/02-requirements/non-functional/nfr-002.mdx +0 -3
- package/templates/docs/03-external/business-model.mdx +1 -1
- package/templates/docs/03-external/index.mdx +1 -1
- package/templates/docs/04-internal/batches/import-products.mdx +2 -6
- package/templates/docs/04-internal/policies/github.mdx +1 -1
- package/templates/docs/04-internal/rules/database.mdx +1 -1
- package/templates/docs/04-internal/screens/dashboard.mdx +1 -1
- package/templates/docs/04-internal/screens/index.mdx +1 -1
- package/templates/docs/04-internal/screens/login.mdx +1 -1
- package/templates/docs/04-internal/screens/menu.mdx +1 -1
- package/templates/docs/index.module.css +96 -0
- package/templates/docs/index.tsx +48 -0
- package/templates/docs/introduction/index.mdx +1 -1
- package/templates/docs/introduction/operational-policies/sharepoint.mdx +1 -1
- package/templates/package.json.template +46 -0
- package/templates/src/components/Highlight/index.tsx +68 -0
- package/templates/src/components/PriorityMatrix/index.tsx +97 -0
- package/templates/src/components/TBD/index.tsx +16 -0
- package/templates/src/css/custom.css +81 -0
- package/templates/src/types/requirements.ts +19 -0
- package/templates/static/img/business-model.drawio.svg +4 -0
- package/templates/static/img/gantt.drawio.svg +1152 -0
- package/templates/static/img/logo.svg +21 -0
- package/bin/commands/create.d.ts.map +0 -1
- package/bin/constants/languages.d.ts.map +0 -1
- package/bin/core/interactive-setup.d.ts.map +0 -1
- package/bin/core/interactive-setup.test.d.ts.map +0 -1
- package/bin/core/project-generator.d.ts.map +0 -1
- package/bin/features/index.d.ts.map +0 -1
- package/bin/generators/docusaurus-config.d.ts.map +0 -1
- package/bin/generators/package-json.d.ts.map +0 -1
- package/bin/generators/template-files.d.ts.map +0 -1
- package/bin/index.d.ts.map +0 -1
- package/bin/plugins/i18n-integration.d.ts +0 -25
- package/bin/plugins/i18n-integration.d.ts.map +0 -1
- package/bin/plugins/i18n-integration.js +0 -310
- package/bin/plugins/i18n-integration.js.map +0 -1
- package/bin/plugins/plantuml-integration.d.ts +0 -17
- package/bin/plugins/plantuml-integration.d.ts.map +0 -1
- package/bin/plugins/plantuml-integration.js +0 -112
- package/bin/plugins/plantuml-integration.js.map +0 -1
- package/bin/plugins/redoc-integration.d.ts +0 -25
- package/bin/plugins/redoc-integration.d.ts.map +0 -1
- package/bin/plugins/redoc-integration.js +0 -373
- package/bin/plugins/redoc-integration.js.map +0 -1
- package/bin/plugins/search-integration.d.ts +0 -20
- package/bin/plugins/search-integration.d.ts.map +0 -1
- package/bin/plugins/search-integration.js +0 -169
- package/bin/plugins/search-integration.js.map +0 -1
- package/bin/templates/index.d.ts.map +0 -1
- package/bin/templates/template-definitions.d.ts +0 -10
- package/bin/templates/template-definitions.d.ts.map +0 -1
- package/bin/templates/template-definitions.js +0 -517
- package/bin/templates/template-definitions.js.map +0 -1
- package/bin/tests/integration.test.d.ts.map +0 -1
- package/bin/types/index.d.ts.map +0 -1
- package/bin/utils/config-merger.d.ts.map +0 -1
- package/bin/utils/errors.d.ts.map +0 -1
- package/bin/utils/install.d.ts.map +0 -1
- package/bin/utils/message-formatter.d.ts.map +0 -1
- package/bin/utils/template-processor.d.ts.map +0 -1
- package/bin/utils/template-processor.test.d.ts.map +0 -1
- package/bin/utils/version.d.ts.map +0 -1
- package/templates/classic-spec/docusaurus.config.js.template +0 -106
- package/templates/classic-spec/package.json.template +0 -36
- package/templates/docs/example.drawio.svg +0 -57
- package/templates/external-design/docusaurus.config.js.template +0 -123
- package/templates/external-design/package.json.template +0 -36
- package/templates/internal-design/docusaurus.config.js.template +0 -123
- package/templates/internal-design/package.json.template +0 -36
- package/templates/project-analysis/docusaurus.config.js.template +0 -113
- package/templates/project-analysis/package.json.template +0 -36
- package/templates/requirements/docusaurus.config.js.template +0 -119
- 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('
|
|
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('
|
|
13
|
-
it('
|
|
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('
|
|
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('
|
|
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('
|
|
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('
|
|
33
|
+
it('空のテンプレートを処理できること', () => {
|
|
34
34
|
const template = '';
|
|
35
35
|
const result = processor.processTemplate(template);
|
|
36
36
|
expect(result).toBe('');
|
|
37
37
|
});
|
|
38
|
-
it('
|
|
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('
|
|
45
|
-
it('
|
|
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('
|
|
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('
|
|
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('
|
|
65
|
-
it('
|
|
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('
|
|
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('
|
|
85
|
-
it('
|
|
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('
|
|
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('
|
|
99
|
-
it('
|
|
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('
|
|
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('
|
|
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":"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,
|
|
1
|
+
{"version":3,"file":"template-processor.test.js","sourceRoot":"","sources":["../../src/utils/template-processor.test.ts"],"names":[],"mappings":"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"}
|
package/bin/utils/version.d.ts
CHANGED
package/bin/utils/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readFileSync } from '
|
|
2
|
-
import { fileURLToPath } from '
|
|
3
|
-
import { dirname, join } from '
|
|
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
|
package/bin/utils/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
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.
|
|
3
|
+
"version": "0.3.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
|
-
```
|
|
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
|
|
@@ -3,7 +3,7 @@ sidebar_position: 99
|
|
|
3
3
|
tags:
|
|
4
4
|
- Glossary
|
|
5
5
|
---
|
|
6
|
-
import
|
|
6
|
+
import TBD from '@site/src/components/TBD';
|
|
7
7
|
|
|
8
8
|
# Glossary - 用語集
|
|
9
9
|
|
|
@@ -14,8 +14,8 @@ TBDの使い方
|
|
|
14
14
|
-->
|
|
15
15
|
|
|
16
16
|
## 使い方ガイド {#how-to-use}
|
|
17
|
-
1. 用語は **アルファベット順 → かな順 → その他** の順番で並べる
|
|
18
|
-
1. 別名・略語は `(別名: xxx)` と括弧書きで追記
|
|
17
|
+
1. 用語は **アルファベット順 → かな順 → その他** の順番で並べる
|
|
18
|
+
1. 別名・略語は `(別名: xxx)` と括弧書きで追記
|
|
19
19
|
|
|
20
20
|
## 用語一覧 {#glossary-list}
|
|
21
21
|
|
|
@@ -34,8 +34,8 @@ TBDの使い方
|
|
|
34
34
|
|
|
35
35
|
### BPMN
|
|
36
36
|
1. Business Process Model and Notation。業務プロセス図の標準表記
|
|
37
|
-
1. PlantUML 等で描画可能
|
|
37
|
+
1. PlantUML 等で描画可能
|
|
38
38
|
|
|
39
39
|
### キャパシティプランニング {#capacity-planning}
|
|
40
|
-
1. 将来の負荷増加を見越した資源計画
|
|
41
|
-
1. CPU / メモリ / IOPS など
|
|
40
|
+
1. 将来の負荷増加を見越した資源計画
|
|
41
|
+
1. CPU / メモリ / IOPS など
|
|
@@ -3,7 +3,7 @@ sidebar_position: 5
|
|
|
3
3
|
tags:
|
|
4
4
|
- To-Be
|
|
5
5
|
---
|
|
6
|
-
import
|
|
6
|
+
import TBD from '@site/src/components/TBD';
|
|
7
7
|
|
|
8
8
|
# To‑Be - 目指すべき姿
|
|
9
9
|
|
|
@@ -14,13 +14,13 @@ TBDの使い方
|
|
|
14
14
|
-->
|
|
15
15
|
|
|
16
16
|
## 概要 {#target-overview}
|
|
17
|
-
1. 本章で示す「理想状態」と As‑Is との差分を概観する
|
|
17
|
+
1. 本章で示す「理想状態」と As‑Is との差分を概観する
|
|
18
18
|
1. ビジネス価値・ユーザ価値・システム観点を 1‒2 文でまとめる
|
|
19
19
|
|
|
20
20
|
## 改善後業務フロー {#business-flow}
|
|
21
21
|
|
|
22
22
|
:::tip
|
|
23
|
-
1. BPMN やスイムレーン図で将来の業務プロセスを可視化
|
|
23
|
+
1. BPMN やスイムレーン図で将来の業務プロセスを可視化
|
|
24
24
|
1. PlantUML を直接埋め込むか、drawio・外部リンクでも可
|
|
25
25
|
:::
|
|
26
26
|
|
|
@@ -88,11 +88,11 @@ Rel(web, cd, "HTTPS (static assets)")
|
|
|
88
88
|
|
|
89
89
|
## 移行方針・ロードマップ {#migration-strategy}
|
|
90
90
|
|
|
91
|
-
1. **フェーズ1: MVP**
|
|
91
|
+
1. **フェーズ1: MVP**
|
|
92
92
|
1. カタログ閲覧 + 決済 (限定 SKU)
|
|
93
|
-
1. **フェーズ2: Full Launch**
|
|
93
|
+
1. **フェーズ2: Full Launch**
|
|
94
94
|
1. 全 SKU 移行・レコメンド ON
|
|
95
|
-
1. **フェーズ3: Continuous Improvement**
|
|
95
|
+
1. **フェーズ3: Continuous Improvement**
|
|
96
96
|
1. A/B テスト・パフォーマンス最適化
|
|
97
97
|
|
|
98
98
|
## 期待効果・成功要因 {#expected-effects}
|
|
@@ -9,9 +9,6 @@ importance: 5
|
|
|
9
9
|
draft: true
|
|
10
10
|
---
|
|
11
11
|
import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
|
|
12
|
-
import { TagList } from '@site/src/components/Tag';
|
|
13
|
-
|
|
14
|
-
<TagList tags={frontMatter.tags} />
|
|
15
12
|
|
|
16
13
|
<!-- <div style={{ marginBottom: "1rem" }}>
|
|
17
14
|
{frontMatter.tags.map((tag) => (
|
|
@@ -8,10 +8,6 @@ urgency: 7
|
|
|
8
8
|
importance: 8
|
|
9
9
|
---
|
|
10
10
|
import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
|
|
11
|
-
import { TagList } from '@site/src/components/Tag';
|
|
12
|
-
// import { ChangeHistoryComponent } from '@site/src/components/ChangeHistory';
|
|
13
|
-
|
|
14
|
-
<TagList tags={frontMatter.tags} />
|
|
15
11
|
|
|
16
12
|
<PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
|
|
17
13
|
|
|
@@ -8,11 +8,8 @@ draft: true
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
|
|
11
|
-
import { TagList } from '@site/src/components/Tag';
|
|
12
11
|
import { ChangeHistoryComponent } from '@site/src/components/ChangeHistory';
|
|
13
12
|
|
|
14
|
-
<TagList tags={frontMatter.tags} />
|
|
15
|
-
|
|
16
13
|
<PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
|
|
17
14
|
|
|
18
15
|
## 概要
|
|
@@ -9,9 +9,6 @@ importance: 9
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
|
|
12
|
-
import { TagList } from '@site/src/components/Tag';
|
|
13
|
-
|
|
14
|
-
<TagList tags={frontMatter.tags} />
|
|
15
12
|
|
|
16
13
|
<PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
|
|
17
14
|
|
|
@@ -9,9 +9,6 @@ importance: 8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
import { PriorityMatrix } from '@site/src/components/PriorityMatrix';
|
|
12
|
-
import { TagList } from '@site/src/components/Tag';
|
|
13
|
-
|
|
14
|
-
<TagList tags={frontMatter.tags} />
|
|
15
12
|
|
|
16
13
|
<PriorityMatrix urgency={frontMatter.urgency} importance={frontMatter.importance} />
|
|
17
14
|
|
|
@@ -11,4 +11,4 @@ import BusinessModel from '@site/static/img/business-model.drawio.svg';
|
|
|
11
11
|
1. 参考
|
|
12
12
|
1. https://drawio-app.com/blog/business-model-canvas/
|
|
13
13
|
1. note: 『ビジネスの仕組みがわかる 図解のつくりかた』全文公開
|
|
14
|
-
1. https://note.com/bizgram/n/n3dbed12f95ea
|
|
14
|
+
1. https://note.com/bizgram/n/n3dbed12f95ea
|
|
@@ -4,7 +4,7 @@ tags:
|
|
|
4
4
|
- batch
|
|
5
5
|
- product
|
|
6
6
|
---
|
|
7
|
-
import
|
|
7
|
+
import TBD from '@site/src/components/TBD';
|
|
8
8
|
|
|
9
9
|
# import-products - 商品取込
|
|
10
10
|
## 概要 {#overview}
|
|
@@ -31,12 +31,8 @@ import { TBD } from '@site/src/components/TBD';
|
|
|
31
31
|
1. 各フェーズごとのエラー処理、メッセージ内容は明確にする
|
|
32
32
|
:::
|
|
33
33
|
|
|
34
|
-
```
|
|
34
|
+
```pumld
|
|
35
35
|
@startuml
|
|
36
|
-
!define uml https://raw.githubusercontent.com/flatring/plantuml-stencils/main
|
|
37
|
-
!include uml/colorset/ocean-blue.iuml
|
|
38
|
-
!include uml/colorset/_skinparams.iuml
|
|
39
|
-
|
|
40
36
|
participant User
|
|
41
37
|
User -> A: DoWork
|
|
42
38
|
activate A #FFBBBB
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
.mainContent {
|
|
2
|
+
min-height: calc(100vh - var(--ifm-navbar-height) - var(--ifm-footer-height));
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.heroBanner {
|
|
8
|
+
padding: 2rem 0;
|
|
9
|
+
text-align: center;
|
|
10
|
+
position: relative;
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
background: linear-gradient(
|
|
13
|
+
135deg,
|
|
14
|
+
var(--ifm-color-primary) 0%,
|
|
15
|
+
var(--ifm-color-primary-darker) 100%
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.heroBanner h1 {
|
|
20
|
+
font-size: 2.5rem;
|
|
21
|
+
margin-bottom: 1rem;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.documentSection {
|
|
25
|
+
padding: 3rem 0 0;
|
|
26
|
+
background-color: var(--ifm-background-color);
|
|
27
|
+
text-align: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.documentSection p {
|
|
31
|
+
max-width: 800px;
|
|
32
|
+
margin: 0 auto 2rem;
|
|
33
|
+
font-size: 1.1rem;
|
|
34
|
+
color: var(--ifm-color-emphasis-700);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.featureCard {
|
|
38
|
+
padding: 1.5rem;
|
|
39
|
+
height: 100%;
|
|
40
|
+
border-radius: 12px;
|
|
41
|
+
background-color: var(--ifm-card-background-color);
|
|
42
|
+
border: 1px solid var(--ifm-color-emphasis-200);
|
|
43
|
+
transition: all 0.3s ease;
|
|
44
|
+
margin-bottom: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.featureCard:hover {
|
|
48
|
+
transform: translateY(-4px);
|
|
49
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
|
|
50
|
+
border-color: var(--ifm-color-primary);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.featureCard h3 {
|
|
54
|
+
margin-bottom: 1rem;
|
|
55
|
+
color: var(--ifm-color-primary);
|
|
56
|
+
font-size: 1.5rem;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.featureCard ul {
|
|
60
|
+
list-style: none;
|
|
61
|
+
padding-left: 0;
|
|
62
|
+
margin-bottom: 1.5rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.featureCard li {
|
|
66
|
+
margin-bottom: 0.8rem;
|
|
67
|
+
color: var(--ifm-font-color-base);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.featureCard a {
|
|
71
|
+
color: var(--ifm-link-color);
|
|
72
|
+
text-decoration: none;
|
|
73
|
+
transition: color 0.2s;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.featureCard li a {
|
|
77
|
+
display: block;
|
|
78
|
+
padding: 0.5rem;
|
|
79
|
+
border-radius: 6px;
|
|
80
|
+
transition: background-color 0.2s;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.featureCard li a:hover {
|
|
84
|
+
background-color: var(--ifm-color-emphasis-100);
|
|
85
|
+
color: var(--ifm-color-primary);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@media screen and (max-width: 996px) {
|
|
89
|
+
.heroBanner {
|
|
90
|
+
padding: 2rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.documentSection {
|
|
94
|
+
padding: 2rem;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
2
|
+
import Heading from '@theme/Heading';
|
|
3
|
+
import Layout from '@theme/Layout';
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
import type { ReactNode } from 'react';
|
|
6
|
+
|
|
7
|
+
import styles from './index.module.css';
|
|
8
|
+
|
|
9
|
+
function HomepageHeader() {
|
|
10
|
+
const { siteConfig } = useDocusaurusContext();
|
|
11
|
+
return (
|
|
12
|
+
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
|
13
|
+
<div className="container">
|
|
14
|
+
<Heading as="h1" className="hero__title">
|
|
15
|
+
{siteConfig.title}
|
|
16
|
+
</Heading>
|
|
17
|
+
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
|
18
|
+
</div>
|
|
19
|
+
</header>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function DocumentSection() {
|
|
24
|
+
const { siteConfig } = useDocusaurusContext();
|
|
25
|
+
return (
|
|
26
|
+
<div className={styles.documentSection}>
|
|
27
|
+
<div className="container">
|
|
28
|
+
<Heading as="h2">このサイトについて</Heading>
|
|
29
|
+
<p>
|
|
30
|
+
このサイトは{siteConfig.title}
|
|
31
|
+
の設計、仕様を管理するためのドキュメントサイトです。
|
|
32
|
+
</p>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default function Home(): ReactNode {
|
|
39
|
+
const { siteConfig } = useDocusaurusContext();
|
|
40
|
+
return (
|
|
41
|
+
<Layout title={siteConfig.title} description="システム仕様書管理サイト">
|
|
42
|
+
<HomepageHeader />
|
|
43
|
+
<main className={styles.mainContent}>
|
|
44
|
+
<DocumentSection />
|
|
45
|
+
</main>
|
|
46
|
+
</Layout>
|
|
47
|
+
);
|
|
48
|
+
}
|