@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.
Files changed (38) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +157 -0
  3. package/dist/database.d.ts +17 -0
  4. package/dist/database.d.ts.map +1 -0
  5. package/dist/database.js +76 -0
  6. package/dist/database.js.map +1 -0
  7. package/dist/index.d.ts +67 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +67 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/registry.d.ts +21 -0
  12. package/dist/registry.d.ts.map +1 -0
  13. package/dist/registry.js +173 -0
  14. package/dist/registry.js.map +1 -0
  15. package/dist/seed-apply.d.ts +22 -0
  16. package/dist/seed-apply.d.ts.map +1 -0
  17. package/dist/seed-apply.js +198 -0
  18. package/dist/seed-apply.js.map +1 -0
  19. package/docs/build.md +25 -0
  20. package/docs/configuration.md +18 -0
  21. package/docs/delivery.md +9 -0
  22. package/docs/operations.md +7 -0
  23. package/docs/publishing.md +11 -0
  24. package/docs/schema/generated/README.md +22 -0
  25. package/docs/schema/generated/schema.json +563 -0
  26. package/docs/schema/generated/schema.mmd +48 -0
  27. package/docs/schema/generated/schema.svg +83 -0
  28. package/docs/schema/generated/validation_contract_profiles.md +72 -0
  29. package/docs/schema/generated/validation_contract_profiles.svg +71 -0
  30. package/docs/schema/generated/validation_contract_provider_manifests.md +62 -0
  31. package/docs/schema/generated/validation_contract_provider_manifests.svg +49 -0
  32. package/docs/schema/generated/validation_contract_rules.md +91 -0
  33. package/docs/schema/generated/validation_contract_rules.svg +52 -0
  34. package/docs/schema/generated/validation_contract_schema_migrations.md +47 -0
  35. package/docs/schema/generated/validation_contract_schema_migrations.svg +27 -0
  36. package/docs/usage.md +55 -0
  37. package/package.json +27 -0
  38. 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');