@soddong/agentic-contract-validation 0.2.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/CHANGELOG.md +17 -0
- package/README.md +157 -0
- package/dist/database.d.ts +17 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +76 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +21 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +173 -0
- package/dist/registry.js.map +1 -0
- package/dist/seed-apply.d.ts +22 -0
- package/dist/seed-apply.d.ts.map +1 -0
- package/dist/seed-apply.js +198 -0
- package/dist/seed-apply.js.map +1 -0
- package/docs/build.md +25 -0
- package/docs/configuration.md +18 -0
- package/docs/delivery.md +9 -0
- package/docs/operations.md +7 -0
- package/docs/publishing.md +11 -0
- package/docs/schema/generated/README.md +22 -0
- package/docs/schema/generated/schema.json +563 -0
- package/docs/schema/generated/schema.mmd +48 -0
- package/docs/schema/generated/schema.svg +83 -0
- package/docs/schema/generated/validation_contract_profiles.md +72 -0
- package/docs/schema/generated/validation_contract_profiles.svg +71 -0
- package/docs/schema/generated/validation_contract_provider_manifests.md +62 -0
- package/docs/schema/generated/validation_contract_provider_manifests.svg +49 -0
- package/docs/schema/generated/validation_contract_rules.md +91 -0
- package/docs/schema/generated/validation_contract_rules.svg +52 -0
- package/docs/schema/generated/validation_contract_schema_migrations.md +47 -0
- package/docs/schema/generated/validation_contract_schema_migrations.svg +27 -0
- package/docs/usage.md +55 -0
- package/package.json +27 -0
- package/src/database/migrations/0001_validation_contract_registry.sql +78 -0
package/docs/usage.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Usage
|
|
2
|
+
|
|
3
|
+
`@soddong/agentic-contract-validation`은 validation rule과 profile을 정의하는 패키지에서 사용합니다.
|
|
4
|
+
또한 seed bundle의 `validationProfiles` section을 project registry에 적용할 수 있습니다.
|
|
5
|
+
|
|
6
|
+
```ts
|
|
7
|
+
import { defineValidationRule } from "@soddong/agentic-contract-validation";
|
|
8
|
+
|
|
9
|
+
const rule = defineValidationRule({
|
|
10
|
+
ruleId: "DOCUMENT.TABLE.CAPTION_REQUIRED",
|
|
11
|
+
providerModule: "@soddong/agentic-domain-document",
|
|
12
|
+
validationTypeCode: "POLICY",
|
|
13
|
+
executionModeCode: "AUTOMATED",
|
|
14
|
+
severityCode: "WARNING",
|
|
15
|
+
appliesToTypeCode: "TABLE_BLOCK",
|
|
16
|
+
message: "Table caption이 필요합니다."
|
|
17
|
+
});
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
실제 rule 실행은 `@soddong/agentic-capability-validation` 책임입니다.
|
|
21
|
+
|
|
22
|
+
## Seed Apply
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import { applyAgenticSeed } from "@soddong/agentic-contract-validation";
|
|
26
|
+
|
|
27
|
+
await applyAgenticSeed({
|
|
28
|
+
sourcePackageName: "@soddong/agentic-methodology-ai-agent-sdlc",
|
|
29
|
+
sourcePackageVersion: "0.2.0",
|
|
30
|
+
bundleCode: "ai-agent-sdlc-build-planning",
|
|
31
|
+
bundleVersion: "0.2.0",
|
|
32
|
+
sourceSection: "validationProfiles",
|
|
33
|
+
targetOperation: "register_validation_profiles",
|
|
34
|
+
mode: "apply",
|
|
35
|
+
itemPayload: [
|
|
36
|
+
{
|
|
37
|
+
profileId: "ai_agent_sdlc.build_planning_seed_structure",
|
|
38
|
+
providerModule: "@soddong/agentic-methodology-ai-agent-sdlc",
|
|
39
|
+
targetDomain: "methodology",
|
|
40
|
+
rules: [
|
|
41
|
+
{
|
|
42
|
+
ruleId: "AI_AGENT_SDLC.BUILD_PLANNING.FOUR_STAGES_REQUIRED",
|
|
43
|
+
validationTypeCode: "STRUCTURE",
|
|
44
|
+
executionModeCode: "AUTOMATED",
|
|
45
|
+
severityCode: "ERROR",
|
|
46
|
+
appliesToTypeCode: "stage_seed",
|
|
47
|
+
message: "Build Planning seed must contain required stages."
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`NAMING`, `REFERENCE` 같은 seed 입력값은 각각 `POLICY`, `REFERENCE_INTEGRITY`로 정규화됩니다.
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@soddong/agentic-contract-validation",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Agentic Platform shared validation contract package",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"src/database/migrations",
|
|
12
|
+
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
14
|
+
"docs"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
19
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"better-sqlite3": "^12.11.1"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/better-sqlite3": "^7.6.13"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
CREATE TABLE IF NOT EXISTS validation_contract_schema_migrations (
|
|
4
|
+
migration_id VARCHAR(128) PRIMARY KEY,
|
|
5
|
+
migration_name VARCHAR(256) NOT NULL,
|
|
6
|
+
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
CREATE TABLE IF NOT EXISTS validation_contract_provider_manifests (
|
|
10
|
+
provider_manifest_id CHAR(36) PRIMARY KEY
|
|
11
|
+
CHECK (length(provider_manifest_id) = 36),
|
|
12
|
+
provider_id VARCHAR(256) NOT NULL,
|
|
13
|
+
provider_module VARCHAR(256) NOT NULL,
|
|
14
|
+
provider_version VARCHAR(64) NOT NULL,
|
|
15
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
16
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
17
|
+
metadata_json JSON
|
|
18
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
19
|
+
UNIQUE (provider_id, provider_version)
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
CREATE TABLE IF NOT EXISTS validation_contract_profiles (
|
|
23
|
+
validation_profile_id CHAR(36) PRIMARY KEY
|
|
24
|
+
CHECK (length(validation_profile_id) = 36),
|
|
25
|
+
provider_manifest_id CHAR(36) NOT NULL
|
|
26
|
+
CHECK (length(provider_manifest_id) = 36),
|
|
27
|
+
profile_id VARCHAR(256) NOT NULL,
|
|
28
|
+
provider_module VARCHAR(256) NOT NULL,
|
|
29
|
+
target_domain VARCHAR(128) NOT NULL,
|
|
30
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
32
|
+
metadata_json JSON
|
|
33
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
34
|
+
FOREIGN KEY (provider_manifest_id)
|
|
35
|
+
REFERENCES validation_contract_provider_manifests (provider_manifest_id)
|
|
36
|
+
ON DELETE CASCADE,
|
|
37
|
+
UNIQUE (provider_manifest_id, profile_id)
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
CREATE TABLE IF NOT EXISTS validation_contract_rules (
|
|
41
|
+
validation_rule_id CHAR(36) PRIMARY KEY
|
|
42
|
+
CHECK (length(validation_rule_id) = 36),
|
|
43
|
+
validation_profile_id CHAR(36) NOT NULL
|
|
44
|
+
CHECK (length(validation_profile_id) = 36),
|
|
45
|
+
rule_id VARCHAR(256) NOT NULL,
|
|
46
|
+
provider_module VARCHAR(256) NOT NULL,
|
|
47
|
+
validation_type_code VARCHAR(64) NOT NULL,
|
|
48
|
+
execution_mode_code VARCHAR(64) NOT NULL,
|
|
49
|
+
severity_code VARCHAR(64) NOT NULL,
|
|
50
|
+
applies_to_type_code VARCHAR(128) NOT NULL,
|
|
51
|
+
applies_to_ref VARCHAR(256),
|
|
52
|
+
source_component_ref VARCHAR(256),
|
|
53
|
+
parameters_json JSON
|
|
54
|
+
CHECK (parameters_json IS NULL OR json_valid(parameters_json)),
|
|
55
|
+
message TEXT NOT NULL,
|
|
56
|
+
remediation TEXT,
|
|
57
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
58
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
59
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
60
|
+
metadata_json JSON
|
|
61
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
62
|
+
FOREIGN KEY (validation_profile_id)
|
|
63
|
+
REFERENCES validation_contract_profiles (validation_profile_id)
|
|
64
|
+
ON DELETE CASCADE,
|
|
65
|
+
UNIQUE (validation_profile_id, rule_id)
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_validation_contract_profiles_provider
|
|
69
|
+
ON validation_contract_profiles (provider_manifest_id);
|
|
70
|
+
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_validation_contract_profiles_target
|
|
72
|
+
ON validation_contract_profiles (target_domain);
|
|
73
|
+
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_validation_contract_rules_profile
|
|
75
|
+
ON validation_contract_rules (validation_profile_id);
|
|
76
|
+
|
|
77
|
+
INSERT OR IGNORE INTO validation_contract_schema_migrations (migration_id, migration_name)
|
|
78
|
+
VALUES ('0001_validation_contract_registry', 'validation contract registry schema');
|