{"_id":"@agentplatform/agentic-domain-artifact-standard","name":"@agentplatform/agentic-domain-artifact-standard","dist-tags":{"latest":"0.11.0"},"versions":{"0.11.0":{"name":"@agentplatform/agentic-domain-artifact-standard","version":"0.11.0","description":"Agentic Platform artifact standard domain package","license":"UNLICENSED","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf dist tsconfig.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit"},"dependencies":{"@agentplatform/agentic-contract-validation":"^0.2.0","@agentplatform/agentic-domain-document":"^0.7.0","better-sqlite3":"^12.11.1"},"devDependencies":{"@types/better-sqlite3":"^7.6.13"},"publishConfig":{"access":"public"},"gitHead":"3208ab11c20a8fc085dc9c05fc8aecf55ff5cf6e","_id":"@agentplatform/agentic-domain-artifact-standard@0.11.0","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-Xb10px8uWqUt46SSFwIt/XdIAVXBMrEqEFA7hlVrVX2tPm8Xi2RR7W27zNwuM2ey1VaJz0uAFxRqJRqtELYN7A==","shasum":"732170892d1fc1726329b43986654d42052e5693","tarball":"https://registry.npmjs.org/@agentplatform/agentic-domain-artifact-standard/-/agentic-domain-artifact-standard-0.11.0.tgz","fileCount":83,"unpackedSize":840665,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDf2IxyoEiL6v3BLCLyv/3FX1VQ8kXUUFDEOCHaXcUaeQIgeadx4PJ6Nnbb1GU6z4nYPgMJfpfgiWlIPRK0ef71bgg="}]},"_npmUser":{"name":"soddong","email":"gus9300@naver.com"},"directories":{},"maintainers":[{"name":"dabonee","email":"jdbc4497@gmail.com"},{"name":"soddong","email":"gus9300@naver.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agentic-domain-artifact-standard_0.11.0_1782699180111_0.32044052158590364"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-29T02:13:00.018Z","0.11.0":"2026-06-29T02:13:00.249Z","modified":"2026-06-29T02:13:00.421Z"},"maintainers":[{"name":"dabonee","email":"jdbc4497@gmail.com"},{"name":"soddong","email":"gus9300@naver.com"}],"description":"Agentic Platform artifact standard domain package","license":"UNLICENSED","readme":"# agentic-domain-artifact-standard\n\n`agentic-domain-artifact-standard`는 Agentic Platform의 산출물 표준 도메인 패키지입니다.\n\n이 패키지는 산출물 유형별 `Artifact Standard`, 템플릿, 가이드, 예시, Document Blueprint, Blueprint Node, Template Slot, Component Binding, Block/Table Schema, Validation Rule 같은 재사용 가능한 산출물 작성 기준을 소유합니다.\n\n## 용어 기준\n\n`Artifact Standard`는 특정 산출물 유형을 작성, 검토, 검증하기 위한 복합 표준 단위입니다. 템플릿, 가이드, 예시, 문서 blueprint, blueprint node, template slot, component binding, block/table schema, validation rule, LLM 보충 지침을 하나의 표준으로 묶어 관리합니다.\n\n`Package`라는 용어는 npm 배포 단위 또는 repository package를 의미할 때만 사용합니다. 도메인 개념에는 `Artifact Standard Package` 대신 `Artifact Standard`를 사용합니다.\n\n현재 public API에는 호환성을 위해 `getArtifactStandardPackageInfo()`, `artifactStandardPackageCode` 같은 legacy alias도 남아 있습니다. 신규 사용자는 `getArtifactStandardInfo()`, `artifactStandardCode` 계열을 우선 사용합니다.\n\n## Profile 용어 구분\n\n`artifact-standard`에서 사용하는 profile 관련 용어는 다음처럼 구분합니다.\n\n| 용어 | 소유/위치 | 의미 | 현재 상태 |\n| --- | --- | --- | --- |\n| `ArtifactStandardProfile` | `artifact-standard` 후보 모델 | 하나의 산출물 표준 안에서 복수 작성 모드나 tailoring variant를 별도 모델로 관리하는 개념 | 1차 핵심 모델에서 제외 |\n| `DocumentImportProfile` | `agentic-domain-document` contract | document importer가 산출물 표준의 blueprint, TOC, caption, table/figure/diagram 기준을 적용할 수 있게 받는 입력 profile | 제공/연계 |\n| `ValidationProfile` | `agentic-contract-validation` contract | validation rule bundle/provider profile | provider manifest로 export |\n\n따라서 `artifact-standard`가 `DocumentImportProfile`과 validation provider profile을 제공한다고 해서 `ArtifactStandardProfile` DB 모델을 도입한 것은 아닙니다.\n\n## 현재 범위\n\nIteration 0에서는 패키지 skeleton과 Continuous Publish/Delivery 기반을 제공했습니다. 현재는 1차 보강으로 `agentic-domain-document`의 `DocumentImportProfile` contract와 정렬되는 profile provider, SQLite 기반 artifact-standard repository/service, Business Process Definition fixture, Information Object Definition fixture, validation provider manifest export, Generated Output Link, runtime seed apply handler를 제공합니다. 0.10.0에서는 후행 산출물 작성 context 검증을 위해 `information_object_definition@1.0.0` 표준 fixture를 추가했고, 0.10.1에서는 `ArtifactStandard` / `artifactStandardCode` 계열 호환 alias를 추가했습니다. 0.11.0에서는 AI-Agent SDLC seed의 `generatedOutputLinks` section을 artifact-standard DB에 적용할 수 있게 했습니다. Validator 실행 engine은 `agentic-capability-validation` 책임이며, `artifact-standard`는 검증 기준을 contract-compatible manifest로 제공하는 데 집중합니다.\n\n| 구분 | 상태 |\n| --- | --- |\n| 패키지 skeleton | 포함 |\n| 기본 문서 | 포함 |\n| build/typecheck | 포함 |\n| 최소 public API | 포함 |\n| Architecture Specification DocumentImportProfile fixture | 포함 |\n| Blueprint node model | 포함 |\n| Template slot model | 포함 |\n| Component binding model | 포함 |\n| Document component model | 포함 |\n| Document component relation model | 포함 |\n| Physical structure policy model | 포함 |\n| Artifact Standard DB migration | 포함 |\n| Repository/Service | 포함 |\n| Aggregate 조회 API | 포함 |\n| Business Process Definition fixture helper | 포함 |\n| Information Object Definition fixture helper | 포함 |\n| Aggregate 기반 DocumentImportProfile 생성 helper | 포함 |\n| Generated Output Link model | 포함 |\n| Runtime Seed Apply Handler | `generatedOutputLinks` section 처리 |\n| Validation rule set contract export | 포함 |\n| Validation contract code guard | 포함 |\n| Validator 실행 engine | 제외: `agentic-capability-validation` 책임 |\n| Seed/Fixture | 포함 |\n| Agent contribution | 후속 iteration |\n| CLI | 1차 구현 제외 |\n| Adapter | 1차 구현 제외 |\n\n## 도메인 책임\n\n```text\nagentic-domain-artifact-standard\n  - Artifact Standard\n  - Artifact Type\n  - Concept Document reference\n  - Template Document reference\n  - Guide Document reference\n  - Example Document reference\n  - Component Binding\n  - Document Component\n  - Document Component Relation\n  - Physical Structure Policy\n  - Document Blueprint\n  - Blueprint Node\n  - Template Slot\n  - Block/Table Schema\n  - Validation Rule reference\n  - Generated Output Link\n  - Input/Output Contract\n  - Handoff Criteria\n```\n\n## 제외 범위\n\n| 제외 항목 | 담당 후보 |\n| --- | --- |\n| 실제 산출물 instance | `agentic-domain-artifact` |\n| Document 저장 구조 | `agentic-domain-document` |\n| Methodology Activity/Stage 요구 관계 | `agentic-domain-methodology` |\n| Validation contract | `agentic-contract-validation` |\n| 검증 실행 엔진 | `agentic-capability-validation` |\n| Render 실행 | `agentic-capability-render` |\n\n## 기본 API 예시\n\n현재 API는 이전 호환성을 유지합니다. 도메인 용어 기준은 `Artifact Standard`이며, 신규 호출은 `artifactStandardCode`를 사용합니다.\n\n```ts\nimport {\n  createDocumentImportProfileFromArtifactStandardAggregate,\n  getArtifactStandardDocumentProfile,\n  getArtifactStandardInfo\n} from \"agentic-domain-artifact-standard\";\n\nconsole.log(getArtifactStandardInfo());\n\nconst profile = getArtifactStandardDocumentProfile({\n  artifactStandardCode: \"architecture_specification\"\n});\n\nconsole.log(profile.profileCode);\n```\n\n## Document Profile Provider\n\n`agentic-domain-artifact-standard`는 document DB를 직접 조작하지 않습니다. 산출물 표준 관점에서 문서 유형별 profile을 제공하고, consumer 또는 integration layer가 이 profile을 `agentic-domain-document` importer에 전달합니다.\n\n```text\nartifact-standard\n  -> getArtifactStandardDocumentProfile()\n  -> DocumentImportProfile\n  -> document importer\n```\n\n`getArtifactStandardDocumentProfile()`은 호환성을 위해 유지되는 legacy fixture provider입니다. 신규 산출물 표준은 DB aggregate에서 document profile을 도출하는 방식을 우선 사용합니다.\n\n```ts\nconst aggregate = service.getArtifactStandardAggregateByCodeVersion(\n  \"business_process_definition\",\n  \"1.0.0\"\n);\n\nif (aggregate !== undefined) {\n  const profile = createDocumentImportProfileFromArtifactStandardAggregate(aggregate);\n  console.log(profile.profileCode);\n}\n```\n\n현재 legacy fixture로 제공되는 profile은 `architecture_specification@1.0.0`입니다.\n\n| 항목 | 값 |\n| --- | --- |\n| profile code | `architecture_specification` |\n| document type | `architecture_specification` |\n| taxonomy code | `architecture_specification` |\n| TOC level limit | `4` |\n| caption policy | `표`, `Table`, `그림`, `Figure` caption binding |\n| table/figure caption | required policy |\n\n## SQLite Repository / Service\n\n`agentic-domain-artifact-standard`는 SQLite에서 `artifact_standard_` prefix table을 사용합니다.\n\n```ts\nimport {\n  ArtifactStandardService,\n  openArtifactStandardDatabase\n} from \"agentic-domain-artifact-standard\";\n\nconst db = openArtifactStandardDatabase();\nconst service = new ArtifactStandardService(db);\n\nconst standard = service.createArtifactStandard({\n  artifactStandardCode: \"business_process_definition\",\n  artifactStandardVersion: \"1.0.0\",\n  artifactStandardName: \"Business Process Definition\"\n});\n```\n\nValidation rule set은 `agentic-contract-validation`과 정렬되는 provider manifest로 export할 수 있습니다.\n\n```ts\nconst manifest = service.exportValidationProviderManifest(standard.artifactStandardId);\nconsole.log(manifest.profiles);\n```\n\n여러 하위 구성을 한 번에 조회해야 하면 aggregate API를 사용합니다.\n\n```ts\nconst aggregate = service.getArtifactStandardAggregateByCodeVersion(\n  \"business_process_definition\",\n  \"1.0.0\"\n);\n\nconsole.log(aggregate?.components);\nconsole.log(aggregate?.componentBindings);\nconsole.log(aggregate?.blueprints[0]?.blueprintNodes);\nconsole.log(aggregate?.blueprints[0]?.templateSlots);\nconsole.log(aggregate?.documentComponents);\nconsole.log(aggregate?.documentComponentRelations);\nconsole.log(aggregate?.physicalStructurePolicies);\nconsole.log(aggregate?.tableSchemas[0]?.columns);\nconsole.log(aggregate?.validationRuleSets[0]?.rules);\n```\n\n## Generated Output Link\n\nGenerated Output Link는 산출물 표준을 기준으로 후속 산출물 또는 코드/파일 같은 생성 출력물을 만들 수 있다는 관계를 정의합니다.\n\n예를 들어 AI-Agent SDLC Build Planning seed에서는 다음 관계를 표현합니다.\n\n```text\n컴포넌트 모듈 구조 정의서\n  -> 컴포넌트 모듈 구조 설계서\n\n컴포넌트 모듈 구조 설계서\n  -> 컴포넌트, 서브컴포넌트, 비즈니스 모듈 생성\n```\n\n첫 번째는 target이 다른 Artifact Standard이고, 두 번째는 target이 산출물 문서가 아니라 생성 출력물입니다.\n\n```ts\nconst source = service.createArtifactStandard({\n  artifactStandardCode: \"component_module_structure_design\",\n  artifactStandardVersion: \"1.0.0\",\n  artifactStandardName: \"컴포넌트 모듈 구조 설계서\"\n});\n\nservice.addGeneratedOutputLink({\n  linkCode: \"gen_module_structure_design_to_modules\",\n  sourceArtifactStandardId: source.artifactStandardId,\n  sourceArtifactStandardCode: source.artifactStandardCode,\n  sourceArtifactStandardVersion: source.artifactStandardVersion,\n  targetTypeCode: \"GENERATED_OUTPUT\",\n  targetOutputName: \"컴포넌트, 서브컴포넌트, 비즈니스 모듈 생성\",\n  generationModeCode: \"AUTOMATIC\",\n  sortOrder: 20\n});\n```\n\n`applyAgenticSeed()`는 `agentic-runtime seed apply`에서 `generatedOutputLinks` section을 전달받아 이 모델에 저장합니다. seed에 등장한 source 또는 target artifact standard의 상세 구조가 아직 없으면 최소 stub standard를 생성하고, 원본 seed payload는 metadata에 보존합니다.\n\n## Document Component와 Physical Structure Policy\n\n`DocumentComponent`는 산출물 표준에서 본문, 부록, 보조자료 같은 문서 구성 단위를 정의합니다. 이는 guide, format, example 같은 resource component와 다릅니다.\n\n`DocumentComponent.blueprintId`는 해당 component가 따라야 하는 document structure 기준을 가리킵니다. 본문과 부록이 같은 문서 저장 모델을 사용하더라도, 실제 목차와 필수 block 구조는 component별 blueprint로 다르게 정의할 수 있습니다.\n\n예를 들어 Business Process Definition은 다음처럼 논리적으로 계층화할 수 있습니다.\n\n```text\nmain_document\n  appendix_l3_process\n    appendix_scenario\n      appendix_l4_detail\n```\n\nBusiness Process Definition fixture는 다음처럼 component별 blueprint를 분리합니다.\n\n| document component | blueprint |\n| --- | --- |\n| `main_document` | `main_document` |\n| `appendix_l3_process` | `l3_process_appendix` |\n| `appendix_scenario` | `scenario_appendix` |\n| `appendix_l4_detail` | `l4_detail_appendix` |\n\n이 논리 구조는 `parentDocumentComponentId`와 `DocumentComponentRelation`으로 관리합니다. 반면 실제 파일 위치는 `PhysicalStructurePolicy`가 결정합니다.\n\n```ts\nconst main = service.addDocumentComponent({\n  artifactStandardId: standard.artifactStandardId,\n  documentComponentCode: \"main_document\",\n  documentComponentName: \"Business Process Definition Main Document\",\n  componentRoleCode: \"MAIN\",\n  componentTypeCode: \"MAIN_DOCUMENT\",\n  logicalLevel: 0\n});\n\nconst appendix = service.addDocumentComponent({\n  artifactStandardId: standard.artifactStandardId,\n  parentDocumentComponentId: main.documentComponentId,\n  documentComponentCode: \"appendix_l3_process\",\n  documentComponentName: \"L3 Process Appendix\",\n  componentRoleCode: \"APPENDIX\",\n  componentTypeCode: \"L3_PROCESS_APPENDIX\",\n  logicalLevel: 1,\n  isRepeatable: true\n});\n\nservice.addDocumentComponentRelation({\n  artifactStandardId: standard.artifactStandardId,\n  sourceDocumentComponentId: main.documentComponentId,\n  targetDocumentComponentId: appendix.documentComponentId,\n  relationTypeCode: \"CONTAINS\",\n  isRequired: true\n});\n\nservice.addPhysicalStructurePolicy({\n  artifactStandardId: standard.artifactStandardId,\n  policyCode: \"grouped_by_parent\",\n  policyName: \"Group Appendix Documents By Parent Component\",\n  strategyCode: \"GROUPED_BY_PARENT\",\n  relationSourceCode: \"DB\",\n  pathPattern: \"business-process-definition/{parentComponentCode}/{documentComponentCode}.md\",\n  isDefault: true\n});\n```\n\n이 구조의 목적은 논리 구조는 계층으로 유지하되, 물리 구조는 표준 정의에 따라 계층형 폴더, level별 그룹, parent별 그룹, manifest 기반 단일 폴더 중 선택할 수 있게 하는 것입니다.\n\n## Methodology 연결 기준\n\n`artifact-standard`는 산출물 내부 구조를 정의하고, `methodology`는 어떤 Stage/Activity에서 어떤 산출물 표준과 document component를 입력/출력으로 요구하는지 정의합니다.\n\n비즈니스 프로세스 정의서 예시는 다음 기준으로 해석합니다.\n\n```text\nPlanning Phase\n  - 컴포넌트 비즈니스 프로세스 정의 Stage\n    - 비즈니스 프로세스 정의서 본문 작성 Activity\n    - L3 프로세스 부록 작성 Activity\n    - 시나리오 부록 작성 Activity\n    - L4 상세 부록 작성 Activity\n    - 본문/부록 종합 및 정제 Activity\n  - 컴포넌트 정보 객체 정의 Stage\n    - 선행 비즈니스 프로세스 정의서 묶음을 handoff 입력으로 사용\n```\n\n작성 절차의 세부 작업은 `Step`으로 볼 수 있지만, 현재 MVP에서는 Step 실행까지 시스템화하지 않습니다. Stage 안에서 산출물 또는 document component 단위 산출물을 생산해야 하면 Activity output으로 표현하고, 실제 산출물 instance와 ADoc document 연결은 `agentic-domain-artifact`와 `agentic-domain-document` 조립 책임으로 둡니다.\n\nComponent binding은 guide, example, LLM supplement 같은 component를 특정 구조 요소에 연결합니다.\n\n```ts\nconst bindings = service.listComponentBindingsByTarget(\n  aggregate.standard.artifactStandardId,\n  \"TABLE_SCHEMA\",\n  \"l4_processes\"\n);\n\nconsole.log(bindings[0]?.bindingRoleCode);\n```\n\nValidation rule set rule의 `validationTypeCode`, `executionModeCode`, `severityCode`는 `agentic-contract-validation`의 code guard로 검증됩니다.\n\n`appliesToTypeCode`는 `agentic-contract-validation`에서는 domain-neutral string이지만, `artifact-standard`는 자기 domain target type을 별도로 관리합니다.\n\n1차 validation target type 후보:\n\n```text\nARTIFACT_STANDARD\nDOCUMENT_BLUEPRINT\nBLUEPRINT_NODE\nTEMPLATE_SLOT\nTABLE_SCHEMA\nTABLE_COLUMN_SCHEMA\nFIGURE_POLICY\nDIAGRAM_POLICY\nCOMPONENT\nCOMPONENT_BINDING\nVALIDATION_RULE_SET\nDOCUMENT_COMPONENT\nDOCUMENT_COMPONENT_RELATION\nPHYSICAL_STRUCTURE_POLICY\n```\n\n대표 parameter convention:\n\n```json\n{\n  \"requiredColumns\": [\"sequence_no\", \"process_id\"],\n  \"requiredBindingRoleCodes\": [\"PRIMARY_GUIDE\"]\n}\n```\n\n예를 들어 `TABLE_SCHEMA:l4_processes`에 `PRIMARY_GUIDE` binding이 필요한지는 다음 rule로 표현합니다.\n\n```text\nruleId: ARTIFACT_STANDARD.COMPONENT_BINDING.REQUIRED_ROLE\nappliesToTypeCode: TABLE_SCHEMA\nappliesToRef: l4_processes\nparameters.requiredBindingRoleCodes: [PRIMARY_GUIDE]\n```\n\n## Fixture Helper\n\n사용성 테스트와 integration test를 위해 축소 fixture helper를 제공합니다.\n\n```ts\nimport { seedBusinessProcessDefinitionArtifactStandard } from \"agentic-domain-artifact-standard\";\n\nconst fixture = seedBusinessProcessDefinitionArtifactStandard(service);\nconsole.log(fixture.aggregate.standard.artifactStandardCode);\n```\n\nfixture는 실제 참조 데이터 이행이 아니라 대표 사용 사례 검증용 축소 샘플입니다.\n","readmeFilename":"README.md","_rev":"1-e505744bc19900404140e98f41dfb157"}