@varveai/adit-plans 0.3.0 → 0.3.1
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/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/doc-api-reference.d.ts +6 -0
- package/dist/templates/doc-api-reference.d.ts.map +1 -0
- package/dist/templates/doc-api-reference.js +50 -0
- package/dist/templates/doc-api-reference.js.map +1 -0
- package/dist/templates/doc-architecture.d.ts +6 -0
- package/dist/templates/doc-architecture.d.ts.map +1 -0
- package/dist/templates/doc-architecture.js +51 -0
- package/dist/templates/doc-architecture.js.map +1 -0
- package/dist/templates/doc-business-context.d.ts +6 -0
- package/dist/templates/doc-business-context.d.ts.map +1 -0
- package/dist/templates/doc-business-context.js +51 -0
- package/dist/templates/doc-business-context.js.map +1 -0
- package/dist/templates/doc-conventions.d.ts +6 -0
- package/dist/templates/doc-conventions.d.ts.map +1 -0
- package/dist/templates/doc-conventions.js +60 -0
- package/dist/templates/doc-conventions.js.map +1 -0
- package/dist/templates/doc-data-model.d.ts +6 -0
- package/dist/templates/doc-data-model.d.ts.map +1 -0
- package/dist/templates/doc-data-model.js +57 -0
- package/dist/templates/doc-data-model.js.map +1 -0
- package/dist/templates/doc-project-overview.d.ts +6 -0
- package/dist/templates/doc-project-overview.d.ts.map +1 -0
- package/dist/templates/doc-project-overview.js +48 -0
- package/dist/templates/doc-project-overview.js.map +1 -0
- package/dist/templates/doc-spec.d.ts +45 -0
- package/dist/templates/doc-spec.d.ts.map +1 -0
- package/dist/templates/doc-spec.js +228 -0
- package/dist/templates/doc-spec.js.map +1 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -5,4 +5,11 @@ export { renderIntentTemplate } from "./templates/intent.js";
|
|
|
5
5
|
export { renderRoadmapTemplate } from "./templates/roadmap.js";
|
|
6
6
|
export { renderTaskTemplate } from "./templates/task.js";
|
|
7
7
|
export { createPlanManager, type PlanManager, } from "./generator/plan-manager.js";
|
|
8
|
+
export { DOC_TYPES, DOC_TYPE_IDS, extractH2Headings, extractSectionContents, classifyDocument, validateDocument, type DocTypeSpec, type DocValidationResult, } from "./templates/doc-spec.js";
|
|
9
|
+
export { renderProjectOverviewTemplate } from "./templates/doc-project-overview.js";
|
|
10
|
+
export { renderArchitectureTemplate } from "./templates/doc-architecture.js";
|
|
11
|
+
export { renderApiReferenceTemplate } from "./templates/doc-api-reference.js";
|
|
12
|
+
export { renderDataModelTemplate } from "./templates/doc-data-model.js";
|
|
13
|
+
export { renderBusinessContextTemplate } from "./templates/doc-business-context.js";
|
|
14
|
+
export { renderConventionsTemplate } from "./templates/doc-conventions.js";
|
|
8
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,12 @@ export { renderIntentTemplate } from "./templates/intent.js";
|
|
|
5
5
|
export { renderRoadmapTemplate } from "./templates/roadmap.js";
|
|
6
6
|
export { renderTaskTemplate } from "./templates/task.js";
|
|
7
7
|
export { createPlanManager, } from "./generator/plan-manager.js";
|
|
8
|
+
// Document spec and templates
|
|
9
|
+
export { DOC_TYPES, DOC_TYPE_IDS, extractH2Headings, extractSectionContents, classifyDocument, validateDocument, } from "./templates/doc-spec.js";
|
|
10
|
+
export { renderProjectOverviewTemplate } from "./templates/doc-project-overview.js";
|
|
11
|
+
export { renderArchitectureTemplate } from "./templates/doc-architecture.js";
|
|
12
|
+
export { renderApiReferenceTemplate } from "./templates/doc-api-reference.js";
|
|
13
|
+
export { renderDataModelTemplate } from "./templates/doc-data-model.js";
|
|
14
|
+
export { renderBusinessContextTemplate } from "./templates/doc-business-context.js";
|
|
15
|
+
export { renderConventionsTemplate } from "./templates/doc-conventions.js";
|
|
8
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,GAElB,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,GAElB,MAAM,6BAA6B,CAAC;AAErC,8BAA8B;AAC9B,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Reference template — endpoint documentation.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DOC_API_REFERENCE_TEMPLATE = "# API Reference: {{title}}\n\n## Endpoints\n<!-- Document each API endpoint group. -->\n\n### [Method] /api/path\n- **Description**:\n- **Auth required**: Yes/No\n- **Request body**:\n- **Response**:\n- **Status codes**: 200, 400, 401, 404, 500\n\n## Authentication\n<!-- How API authentication works. Token types, header format. -->\n\n\n## Error Codes\n<!-- Standard error response format and error code table. -->\n\n| Code | Meaning | When it occurs |\n|------|---------|---------------|\n| | | |\n\n## Rate Limiting\n<!-- Rate limiting policy, headers, and quotas. -->\n\n\n## Pagination\n<!-- How paginated endpoints work. Query params, response format. -->\n\n\n## Versioning\n<!-- API versioning strategy. Current version, deprecation policy. -->\n\n\n## Webhooks\n<!-- Outgoing webhook events, payload format, retry policy. -->\n\n\n---\n*Created: {{date}}*\n*Document type: api-reference*\n";
|
|
5
|
+
export declare function renderApiReferenceTemplate(title: string): string;
|
|
6
|
+
//# sourceMappingURL=doc-api-reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-api-reference.d.ts","sourceRoot":"","sources":["../../src/templates/doc-api-reference.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,0BAA0B,y4BA0CtC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Reference template — endpoint documentation.
|
|
3
|
+
*/
|
|
4
|
+
export const DOC_API_REFERENCE_TEMPLATE = `# API Reference: {{title}}
|
|
5
|
+
|
|
6
|
+
## Endpoints
|
|
7
|
+
<!-- Document each API endpoint group. -->
|
|
8
|
+
|
|
9
|
+
### [Method] /api/path
|
|
10
|
+
- **Description**:
|
|
11
|
+
- **Auth required**: Yes/No
|
|
12
|
+
- **Request body**:
|
|
13
|
+
- **Response**:
|
|
14
|
+
- **Status codes**: 200, 400, 401, 404, 500
|
|
15
|
+
|
|
16
|
+
## Authentication
|
|
17
|
+
<!-- How API authentication works. Token types, header format. -->
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## Error Codes
|
|
21
|
+
<!-- Standard error response format and error code table. -->
|
|
22
|
+
|
|
23
|
+
| Code | Meaning | When it occurs |
|
|
24
|
+
|------|---------|---------------|
|
|
25
|
+
| | | |
|
|
26
|
+
|
|
27
|
+
## Rate Limiting
|
|
28
|
+
<!-- Rate limiting policy, headers, and quotas. -->
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Pagination
|
|
32
|
+
<!-- How paginated endpoints work. Query params, response format. -->
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Versioning
|
|
36
|
+
<!-- API versioning strategy. Current version, deprecation policy. -->
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Webhooks
|
|
40
|
+
<!-- Outgoing webhook events, payload format, retry policy. -->
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
*Created: {{date}}*
|
|
45
|
+
*Document type: api-reference*
|
|
46
|
+
`;
|
|
47
|
+
export function renderApiReferenceTemplate(title) {
|
|
48
|
+
return DOC_API_REFERENCE_TEMPLATE.replace(/\{\{title\}\}/g, title).replace(/\{\{date\}\}/g, new Date().toISOString().substring(0, 10));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=doc-api-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-api-reference.js","sourceRoot":"","sources":["../../src/templates/doc-api-reference.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CzC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,0BAA0B,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO,CACxE,eAAe,EACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Architecture template — system design and component relationships.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DOC_ARCHITECTURE_TEMPLATE = "# Architecture: {{title}}\n\n## Components\n<!-- List each major component/module with its responsibility. -->\n\n### Component 1\n<!-- Responsibility, key files, public API surface. -->\n\n\n## Data Flow\n<!-- How does data move through the system? Key pipelines and transformations. -->\n\n\n## Dependencies\n<!-- External services, libraries, and infrastructure this system depends on. -->\n\n| Dependency | Purpose | Critical? |\n|-----------|---------|-----------|\n| | | |\n\n## Design Decisions\n<!-- Key architectural decisions and their rationale (ADR format). -->\n\n### Decision 1\n- **Context**: Why was this decision needed?\n- **Options considered**:\n- **Outcome**: What was chosen and why.\n\n## Security\n<!-- Authentication, authorization, data protection approach. -->\n\n\n## Performance\n<!-- Performance characteristics, bottlenecks, caching strategy. -->\n\n\n## Scalability\n<!-- How the system scales. Known limits. -->\n\n\n---\n*Created: {{date}}*\n*Document type: architecture*\n";
|
|
5
|
+
export declare function renderArchitectureTemplate(title: string): string;
|
|
6
|
+
//# sourceMappingURL=doc-architecture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-architecture.d.ts","sourceRoot":"","sources":["../../src/templates/doc-architecture.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,o/BA2CrC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Architecture template — system design and component relationships.
|
|
3
|
+
*/
|
|
4
|
+
export const DOC_ARCHITECTURE_TEMPLATE = `# Architecture: {{title}}
|
|
5
|
+
|
|
6
|
+
## Components
|
|
7
|
+
<!-- List each major component/module with its responsibility. -->
|
|
8
|
+
|
|
9
|
+
### Component 1
|
|
10
|
+
<!-- Responsibility, key files, public API surface. -->
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Data Flow
|
|
14
|
+
<!-- How does data move through the system? Key pipelines and transformations. -->
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Dependencies
|
|
18
|
+
<!-- External services, libraries, and infrastructure this system depends on. -->
|
|
19
|
+
|
|
20
|
+
| Dependency | Purpose | Critical? |
|
|
21
|
+
|-----------|---------|-----------|
|
|
22
|
+
| | | |
|
|
23
|
+
|
|
24
|
+
## Design Decisions
|
|
25
|
+
<!-- Key architectural decisions and their rationale (ADR format). -->
|
|
26
|
+
|
|
27
|
+
### Decision 1
|
|
28
|
+
- **Context**: Why was this decision needed?
|
|
29
|
+
- **Options considered**:
|
|
30
|
+
- **Outcome**: What was chosen and why.
|
|
31
|
+
|
|
32
|
+
## Security
|
|
33
|
+
<!-- Authentication, authorization, data protection approach. -->
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Performance
|
|
37
|
+
<!-- Performance characteristics, bottlenecks, caching strategy. -->
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Scalability
|
|
41
|
+
<!-- How the system scales. Known limits. -->
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
*Created: {{date}}*
|
|
46
|
+
*Document type: architecture*
|
|
47
|
+
`;
|
|
48
|
+
export function renderArchitectureTemplate(title) {
|
|
49
|
+
return DOC_ARCHITECTURE_TEMPLATE.replace(/\{\{title\}\}/g, title).replace(/\{\{date\}\}/g, new Date().toISOString().substring(0, 10));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=doc-architecture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-architecture.js","sourceRoot":"","sources":["../../src/templates/doc-architecture.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CxC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO,CACvE,eAAe,EACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business Context template — goals, users, and success criteria.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DOC_BUSINESS_CONTEXT_TEMPLATE = "# Business Context: {{title}}\n\n## Goals\n<!-- What business objectives does this project serve? -->\n\n1.\n2.\n3.\n\n## Users\n<!-- Target user personas and their needs. -->\n\n### Persona 1\n<!-- Role, technical level, primary use case, pain points. -->\n\n## Success Criteria\n<!-- How will you measure success? Specific, quantifiable. -->\n\n- [ ]\n- [ ]\n- [ ]\n\n## User Stories\n<!-- Key user stories in \"As a ... I want ... So that ...\" format. -->\n\n## Constraints\n<!-- Business or technical constraints that bound the solution. -->\n\n\n## Metrics\n<!-- Key metrics that indicate the system is working as intended. -->\n\n| Metric | Target | How measured |\n|--------|--------|-------------|\n| | | |\n\n## Competitors\n<!-- Existing solutions in this space. What they do well, gaps. -->\n\n\n---\n*Created: {{date}}*\n*Document type: business-context*\n";
|
|
5
|
+
export declare function renderBusinessContextTemplate(title: string): string;
|
|
6
|
+
//# sourceMappingURL=doc-business-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-business-context.d.ts","sourceRoot":"","sources":["../../src/templates/doc-business-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,6BAA6B,02BA2CzC,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business Context template — goals, users, and success criteria.
|
|
3
|
+
*/
|
|
4
|
+
export const DOC_BUSINESS_CONTEXT_TEMPLATE = `# Business Context: {{title}}
|
|
5
|
+
|
|
6
|
+
## Goals
|
|
7
|
+
<!-- What business objectives does this project serve? -->
|
|
8
|
+
|
|
9
|
+
1.
|
|
10
|
+
2.
|
|
11
|
+
3.
|
|
12
|
+
|
|
13
|
+
## Users
|
|
14
|
+
<!-- Target user personas and their needs. -->
|
|
15
|
+
|
|
16
|
+
### Persona 1
|
|
17
|
+
<!-- Role, technical level, primary use case, pain points. -->
|
|
18
|
+
|
|
19
|
+
## Success Criteria
|
|
20
|
+
<!-- How will you measure success? Specific, quantifiable. -->
|
|
21
|
+
|
|
22
|
+
- [ ]
|
|
23
|
+
- [ ]
|
|
24
|
+
- [ ]
|
|
25
|
+
|
|
26
|
+
## User Stories
|
|
27
|
+
<!-- Key user stories in "As a ... I want ... So that ..." format. -->
|
|
28
|
+
|
|
29
|
+
## Constraints
|
|
30
|
+
<!-- Business or technical constraints that bound the solution. -->
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## Metrics
|
|
34
|
+
<!-- Key metrics that indicate the system is working as intended. -->
|
|
35
|
+
|
|
36
|
+
| Metric | Target | How measured |
|
|
37
|
+
|--------|--------|-------------|
|
|
38
|
+
| | | |
|
|
39
|
+
|
|
40
|
+
## Competitors
|
|
41
|
+
<!-- Existing solutions in this space. What they do well, gaps. -->
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
*Created: {{date}}*
|
|
46
|
+
*Document type: business-context*
|
|
47
|
+
`;
|
|
48
|
+
export function renderBusinessContextTemplate(title) {
|
|
49
|
+
return DOC_BUSINESS_CONTEXT_TEMPLATE.replace(/\{\{title\}\}/g, title).replace(/\{\{date\}\}/g, new Date().toISOString().substring(0, 10));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=doc-business-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-business-context.js","sourceRoot":"","sources":["../../src/templates/doc-business-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C5C,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,OAAO,6BAA6B,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO,CAC3E,eAAe,EACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conventions template — coding standards and file organization.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DOC_CONVENTIONS_TEMPLATE = "# Conventions: {{title}}\n\n## Style Guide\n<!-- Language-specific style rules. Linter/formatter config. -->\n\n### General\n<!-- Rules that apply across all files. -->\n\n### TypeScript / JavaScript\n<!-- TS-specific rules: strict mode, import style, etc. -->\n\n## Naming\n<!-- Naming conventions for variables, functions, classes, files. -->\n\n| Element | Convention | Example |\n|---------|-----------|---------|\n| Variables | camelCase | userName |\n| Constants | UPPER_SNAKE | MAX_SIZE |\n| Functions | camelCase | getUser() |\n| Classes | PascalCase | UserService |\n| Files | kebab-case | user-service.ts |\n\n## File Organization\n<!-- Directory structure and file placement rules. -->\n\n```\nsrc/\n\u251C\u2500\u2500 components/ <!-- UI components -->\n\u251C\u2500\u2500 lib/ <!-- Shared utilities -->\n\u251C\u2500\u2500 pages/ <!-- Route handlers -->\n\u2514\u2500\u2500 types/ <!-- Type definitions -->\n```\n\n## Testing\n<!-- Testing patterns: framework, file naming, what to test. -->\n\n\n## Git Workflow\n<!-- Branch naming, commit message format, PR process. -->\n\n\n## Error Handling\n<!-- How errors are handled, logged, and surfaced. -->\n\n\n## Logging\n<!-- Logging levels, format, and where logs go. -->\n\n\n---\n*Created: {{date}}*\n*Document type: conventions*\n";
|
|
5
|
+
export declare function renderConventionsTemplate(title: string): string;
|
|
6
|
+
//# sourceMappingURL=doc-conventions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-conventions.d.ts","sourceRoot":"","sources":["../../src/templates/doc-conventions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,wBAAwB,6yCAoDpC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK/D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conventions template — coding standards and file organization.
|
|
3
|
+
*/
|
|
4
|
+
export const DOC_CONVENTIONS_TEMPLATE = `# Conventions: {{title}}
|
|
5
|
+
|
|
6
|
+
## Style Guide
|
|
7
|
+
<!-- Language-specific style rules. Linter/formatter config. -->
|
|
8
|
+
|
|
9
|
+
### General
|
|
10
|
+
<!-- Rules that apply across all files. -->
|
|
11
|
+
|
|
12
|
+
### TypeScript / JavaScript
|
|
13
|
+
<!-- TS-specific rules: strict mode, import style, etc. -->
|
|
14
|
+
|
|
15
|
+
## Naming
|
|
16
|
+
<!-- Naming conventions for variables, functions, classes, files. -->
|
|
17
|
+
|
|
18
|
+
| Element | Convention | Example |
|
|
19
|
+
|---------|-----------|---------|
|
|
20
|
+
| Variables | camelCase | userName |
|
|
21
|
+
| Constants | UPPER_SNAKE | MAX_SIZE |
|
|
22
|
+
| Functions | camelCase | getUser() |
|
|
23
|
+
| Classes | PascalCase | UserService |
|
|
24
|
+
| Files | kebab-case | user-service.ts |
|
|
25
|
+
|
|
26
|
+
## File Organization
|
|
27
|
+
<!-- Directory structure and file placement rules. -->
|
|
28
|
+
|
|
29
|
+
\`\`\`
|
|
30
|
+
src/
|
|
31
|
+
├── components/ <!-- UI components -->
|
|
32
|
+
├── lib/ <!-- Shared utilities -->
|
|
33
|
+
├── pages/ <!-- Route handlers -->
|
|
34
|
+
└── types/ <!-- Type definitions -->
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
## Testing
|
|
38
|
+
<!-- Testing patterns: framework, file naming, what to test. -->
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Git Workflow
|
|
42
|
+
<!-- Branch naming, commit message format, PR process. -->
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Error Handling
|
|
46
|
+
<!-- How errors are handled, logged, and surfaced. -->
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## Logging
|
|
50
|
+
<!-- Logging levels, format, and where logs go. -->
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
*Created: {{date}}*
|
|
55
|
+
*Document type: conventions*
|
|
56
|
+
`;
|
|
57
|
+
export function renderConventionsTemplate(title) {
|
|
58
|
+
return DOC_CONVENTIONS_TEMPLATE.replace(/\{\{title\}\}/g, title).replace(/\{\{date\}\}/g, new Date().toISOString().substring(0, 10));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=doc-conventions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-conventions.js","sourceRoot":"","sources":["../../src/templates/doc-conventions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDvC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO,CACtE,eAAe,EACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Model template — database schemas and entity relationships.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DOC_DATA_MODEL_TEMPLATE = "# Data Model: {{title}}\n\n## Models\n<!-- List each database model/entity and its purpose. -->\n\n### ModelName\n<!-- Purpose of this model. Key behaviors. -->\n\n## Fields\n<!-- Document fields for each model. -->\n\n### ModelName\n\n| Field | Type | Required | Default | Description |\n|-------|------|----------|---------|-------------|\n| id | UUID | auto | generated | Primary key |\n\n## Relationships\n<!-- Entity relationships with cardinality. -->\n\n| From | Relationship | To | Description |\n|------|-------------|-----|------------|\n| | has many / belongs to | | |\n\n## Indexes\n<!-- Performance-critical indexes. -->\n\n| Table | Fields | Type | Reason |\n|-------|--------|------|--------|\n| | | unique / btree / gin | |\n\n## Migrations\n<!-- Migration tool and naming convention. How to create and run migrations. -->\n\n\n## Constraints\n<!-- Unique constraints, check constraints, foreign key rules. -->\n\n\n## Enums\n<!-- Enum types used across models. -->\n\n| Enum | Values | Used in |\n|------|--------|---------|\n| | | |\n\n---\n*Created: {{date}}*\n*Document type: data-model*\n";
|
|
5
|
+
export declare function renderDataModelTemplate(title: string): string;
|
|
6
|
+
//# sourceMappingURL=doc-data-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-data-model.d.ts","sourceRoot":"","sources":["../../src/templates/doc-data-model.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,uBAAuB,0lCAiDnC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Model template — database schemas and entity relationships.
|
|
3
|
+
*/
|
|
4
|
+
export const DOC_DATA_MODEL_TEMPLATE = `# Data Model: {{title}}
|
|
5
|
+
|
|
6
|
+
## Models
|
|
7
|
+
<!-- List each database model/entity and its purpose. -->
|
|
8
|
+
|
|
9
|
+
### ModelName
|
|
10
|
+
<!-- Purpose of this model. Key behaviors. -->
|
|
11
|
+
|
|
12
|
+
## Fields
|
|
13
|
+
<!-- Document fields for each model. -->
|
|
14
|
+
|
|
15
|
+
### ModelName
|
|
16
|
+
|
|
17
|
+
| Field | Type | Required | Default | Description |
|
|
18
|
+
|-------|------|----------|---------|-------------|
|
|
19
|
+
| id | UUID | auto | generated | Primary key |
|
|
20
|
+
|
|
21
|
+
## Relationships
|
|
22
|
+
<!-- Entity relationships with cardinality. -->
|
|
23
|
+
|
|
24
|
+
| From | Relationship | To | Description |
|
|
25
|
+
|------|-------------|-----|------------|
|
|
26
|
+
| | has many / belongs to | | |
|
|
27
|
+
|
|
28
|
+
## Indexes
|
|
29
|
+
<!-- Performance-critical indexes. -->
|
|
30
|
+
|
|
31
|
+
| Table | Fields | Type | Reason |
|
|
32
|
+
|-------|--------|------|--------|
|
|
33
|
+
| | | unique / btree / gin | |
|
|
34
|
+
|
|
35
|
+
## Migrations
|
|
36
|
+
<!-- Migration tool and naming convention. How to create and run migrations. -->
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Constraints
|
|
40
|
+
<!-- Unique constraints, check constraints, foreign key rules. -->
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## Enums
|
|
44
|
+
<!-- Enum types used across models. -->
|
|
45
|
+
|
|
46
|
+
| Enum | Values | Used in |
|
|
47
|
+
|------|--------|---------|
|
|
48
|
+
| | | |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
*Created: {{date}}*
|
|
52
|
+
*Document type: data-model*
|
|
53
|
+
`;
|
|
54
|
+
export function renderDataModelTemplate(title) {
|
|
55
|
+
return DOC_DATA_MODEL_TEMPLATE.replace(/\{\{title\}\}/g, title).replace(/\{\{date\}\}/g, new Date().toISOString().substring(0, 10));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=doc-data-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-data-model.js","sourceRoot":"","sources":["../../src/templates/doc-data-model.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDtC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO,CACrE,eAAe,EACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Overview template — README-level project description.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DOC_PROJECT_OVERVIEW_TEMPLATE = "# {{title}} \u2014 Project Overview\n\n## Purpose\n<!-- What does this project do? Who is it for? One or two paragraphs. -->\n\n\n## Architecture\n<!-- High-level system design. Main modules, how they interact. -->\n\n\n## Tech Stack\n<!-- Languages, frameworks, databases, infrastructure. -->\n\n| Layer | Technology | Version |\n|-------|-----------|---------|\n| Frontend | | |\n| Backend | | |\n| Database | | |\n| Infra | | |\n\n## Getting Started\n<!-- How to set up and run the project locally. -->\n\n### Prerequisites\n\n### Installation\n\n### Running\n\n## Deployment\n<!-- How this project is deployed. Environments, CI/CD. -->\n\n\n## Contributing\n<!-- How to contribute. Branch naming, PR process, code review. -->\n\n\n---\n*Created: {{date}}*\n*Document type: project-overview*\n";
|
|
5
|
+
export declare function renderProjectOverviewTemplate(title: string): string;
|
|
6
|
+
//# sourceMappingURL=doc-project-overview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-project-overview.d.ts","sourceRoot":"","sources":["../../src/templates/doc-project-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,6BAA6B,iyBAwCzC,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Overview template — README-level project description.
|
|
3
|
+
*/
|
|
4
|
+
export const DOC_PROJECT_OVERVIEW_TEMPLATE = `# {{title}} — Project Overview
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
<!-- What does this project do? Who is it for? One or two paragraphs. -->
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Architecture
|
|
11
|
+
<!-- High-level system design. Main modules, how they interact. -->
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Tech Stack
|
|
15
|
+
<!-- Languages, frameworks, databases, infrastructure. -->
|
|
16
|
+
|
|
17
|
+
| Layer | Technology | Version |
|
|
18
|
+
|-------|-----------|---------|
|
|
19
|
+
| Frontend | | |
|
|
20
|
+
| Backend | | |
|
|
21
|
+
| Database | | |
|
|
22
|
+
| Infra | | |
|
|
23
|
+
|
|
24
|
+
## Getting Started
|
|
25
|
+
<!-- How to set up and run the project locally. -->
|
|
26
|
+
|
|
27
|
+
### Prerequisites
|
|
28
|
+
|
|
29
|
+
### Installation
|
|
30
|
+
|
|
31
|
+
### Running
|
|
32
|
+
|
|
33
|
+
## Deployment
|
|
34
|
+
<!-- How this project is deployed. Environments, CI/CD. -->
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Contributing
|
|
38
|
+
<!-- How to contribute. Branch naming, PR process, code review. -->
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
*Created: {{date}}*
|
|
43
|
+
*Document type: project-overview*
|
|
44
|
+
`;
|
|
45
|
+
export function renderProjectOverviewTemplate(title) {
|
|
46
|
+
return DOC_PROJECT_OVERVIEW_TEMPLATE.replace(/\{\{title\}\}/g, title).replace(/\{\{date\}\}/g, new Date().toISOString().substring(0, 10));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=doc-project-overview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-project-overview.js","sourceRoot":"","sources":["../../src/templates/doc-project-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC5C,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,OAAO,6BAA6B,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,OAAO,CAC3E,eAAe,EACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document type specification — defines structural expectations for
|
|
3
|
+
* project documents used as AI pipeline context.
|
|
4
|
+
*
|
|
5
|
+
* Each doc type specifies required and recommended H2 sections.
|
|
6
|
+
* Validation checks section presence and content density.
|
|
7
|
+
*/
|
|
8
|
+
/** Specification for a single document type */
|
|
9
|
+
export interface DocTypeSpec {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
description: string;
|
|
13
|
+
requiredSections: string[];
|
|
14
|
+
recommendedSections: string[];
|
|
15
|
+
minContentLength: number;
|
|
16
|
+
}
|
|
17
|
+
/** Validation result for a single document */
|
|
18
|
+
export interface DocValidationResult {
|
|
19
|
+
score: number;
|
|
20
|
+
detectedType: string;
|
|
21
|
+
presentSections: string[];
|
|
22
|
+
missingRequired: string[];
|
|
23
|
+
missingRecommended: string[];
|
|
24
|
+
stubSections: string[];
|
|
25
|
+
suggestions: string[];
|
|
26
|
+
}
|
|
27
|
+
/** All supported document types */
|
|
28
|
+
export declare const DOC_TYPES: Record<string, DocTypeSpec>;
|
|
29
|
+
/** Ordered list of doc type IDs for display */
|
|
30
|
+
export declare const DOC_TYPE_IDS: string[];
|
|
31
|
+
/** Extract H2 headings (## Title) from markdown content */
|
|
32
|
+
export declare function extractH2Headings(content: string): string[];
|
|
33
|
+
/** Extract section content between H2 headings */
|
|
34
|
+
export declare function extractSectionContents(content: string): Map<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Auto-detect document type by matching H2 headings against known section names.
|
|
37
|
+
* Returns the best-matching type ID, or "general" if no match is confident.
|
|
38
|
+
*/
|
|
39
|
+
export declare function classifyDocument(content: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Validate a document's structural quality against its spec.
|
|
42
|
+
* If docType is not provided, it will be auto-detected.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateDocument(content: string, docType?: string): DocValidationResult;
|
|
45
|
+
//# sourceMappingURL=doc-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-spec.d.ts","sourceRoot":"","sources":["../../src/templates/doc-spec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,mCAAmC;AACnC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAyDjD,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,YAAY,UAAyB,CAAC;AAInD,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAS3D;AAED,kDAAkD;AAClD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB3E;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4BxD;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,mBAAmB,CA4FrB"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document type specification — defines structural expectations for
|
|
3
|
+
* project documents used as AI pipeline context.
|
|
4
|
+
*
|
|
5
|
+
* Each doc type specifies required and recommended H2 sections.
|
|
6
|
+
* Validation checks section presence and content density.
|
|
7
|
+
*/
|
|
8
|
+
/** All supported document types */
|
|
9
|
+
export const DOC_TYPES = {
|
|
10
|
+
"project-overview": {
|
|
11
|
+
id: "project-overview",
|
|
12
|
+
label: "Project Overview",
|
|
13
|
+
description: "README-level project description: purpose, architecture, tech stack",
|
|
14
|
+
requiredSections: ["Purpose", "Architecture", "Tech Stack"],
|
|
15
|
+
recommendedSections: ["Getting Started", "Deployment", "Contributing"],
|
|
16
|
+
minContentLength: 50,
|
|
17
|
+
},
|
|
18
|
+
architecture: {
|
|
19
|
+
id: "architecture",
|
|
20
|
+
label: "Architecture",
|
|
21
|
+
description: "System design, component relationships, and data flow",
|
|
22
|
+
requiredSections: ["Components", "Data Flow", "Dependencies"],
|
|
23
|
+
recommendedSections: ["Design Decisions", "Security", "Performance", "Scalability"],
|
|
24
|
+
minContentLength: 80,
|
|
25
|
+
},
|
|
26
|
+
"api-reference": {
|
|
27
|
+
id: "api-reference",
|
|
28
|
+
label: "API Reference",
|
|
29
|
+
description: "API endpoint documentation, authentication, and error codes",
|
|
30
|
+
requiredSections: ["Endpoints", "Authentication", "Error Codes"],
|
|
31
|
+
recommendedSections: ["Rate Limiting", "Pagination", "Versioning", "Webhooks"],
|
|
32
|
+
minContentLength: 60,
|
|
33
|
+
},
|
|
34
|
+
"data-model": {
|
|
35
|
+
id: "data-model",
|
|
36
|
+
label: "Data Model",
|
|
37
|
+
description: "Database schemas, fields, and entity relationships",
|
|
38
|
+
requiredSections: ["Models", "Fields", "Relationships"],
|
|
39
|
+
recommendedSections: ["Indexes", "Migrations", "Constraints", "Enums"],
|
|
40
|
+
minContentLength: 60,
|
|
41
|
+
},
|
|
42
|
+
"business-context": {
|
|
43
|
+
id: "business-context",
|
|
44
|
+
label: "Business Context",
|
|
45
|
+
description: "Business goals, user stories, and success criteria",
|
|
46
|
+
requiredSections: ["Goals", "Users", "Success Criteria"],
|
|
47
|
+
recommendedSections: ["User Stories", "Constraints", "Metrics", "Competitors"],
|
|
48
|
+
minContentLength: 40,
|
|
49
|
+
},
|
|
50
|
+
conventions: {
|
|
51
|
+
id: "conventions",
|
|
52
|
+
label: "Conventions",
|
|
53
|
+
description: "Coding standards, naming conventions, and file organization",
|
|
54
|
+
requiredSections: ["Style Guide", "Naming", "File Organization"],
|
|
55
|
+
recommendedSections: ["Testing", "Git Workflow", "Error Handling", "Logging"],
|
|
56
|
+
minContentLength: 40,
|
|
57
|
+
},
|
|
58
|
+
general: {
|
|
59
|
+
id: "general",
|
|
60
|
+
label: "General",
|
|
61
|
+
description: "General-purpose documentation with no required sections",
|
|
62
|
+
requiredSections: [],
|
|
63
|
+
recommendedSections: [],
|
|
64
|
+
minContentLength: 30,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
/** Ordered list of doc type IDs for display */
|
|
68
|
+
export const DOC_TYPE_IDS = Object.keys(DOC_TYPES);
|
|
69
|
+
// ─── H2 Heading Extraction ────────────────────────────────────────
|
|
70
|
+
/** Extract H2 headings (## Title) from markdown content */
|
|
71
|
+
export function extractH2Headings(content) {
|
|
72
|
+
const headings = [];
|
|
73
|
+
for (const line of content.split("\n")) {
|
|
74
|
+
const match = line.match(/^##\s+(.+)/);
|
|
75
|
+
if (match) {
|
|
76
|
+
headings.push(match[1].trim());
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return headings;
|
|
80
|
+
}
|
|
81
|
+
/** Extract section content between H2 headings */
|
|
82
|
+
export function extractSectionContents(content) {
|
|
83
|
+
const sections = new Map();
|
|
84
|
+
let currentHeading = "";
|
|
85
|
+
let currentContent = [];
|
|
86
|
+
for (const line of content.split("\n")) {
|
|
87
|
+
const match = line.match(/^##\s+(.+)/);
|
|
88
|
+
if (match) {
|
|
89
|
+
if (currentHeading) {
|
|
90
|
+
sections.set(currentHeading, currentContent.join("\n").trim());
|
|
91
|
+
}
|
|
92
|
+
currentHeading = match[1].trim();
|
|
93
|
+
currentContent = [];
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
currentContent.push(line);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Don't forget the last section
|
|
100
|
+
if (currentHeading) {
|
|
101
|
+
sections.set(currentHeading, currentContent.join("\n").trim());
|
|
102
|
+
}
|
|
103
|
+
return sections;
|
|
104
|
+
}
|
|
105
|
+
// ─── Document Classification ──────────────────────────────────────
|
|
106
|
+
/**
|
|
107
|
+
* Auto-detect document type by matching H2 headings against known section names.
|
|
108
|
+
* Returns the best-matching type ID, or "general" if no match is confident.
|
|
109
|
+
*/
|
|
110
|
+
export function classifyDocument(content) {
|
|
111
|
+
const headings = extractH2Headings(content);
|
|
112
|
+
if (headings.length === 0)
|
|
113
|
+
return "general";
|
|
114
|
+
const headingLower = headings.map((h) => h.toLowerCase());
|
|
115
|
+
let bestType = "general";
|
|
116
|
+
let bestScore = 0;
|
|
117
|
+
for (const [typeId, spec] of Object.entries(DOC_TYPES)) {
|
|
118
|
+
if (typeId === "general")
|
|
119
|
+
continue;
|
|
120
|
+
const allSections = [...spec.requiredSections, ...spec.recommendedSections];
|
|
121
|
+
let matched = 0;
|
|
122
|
+
for (const section of allSections) {
|
|
123
|
+
if (headingLower.some((h) => h.includes(section.toLowerCase()))) {
|
|
124
|
+
matched++;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const score = allSections.length > 0 ? matched / allSections.length : 0;
|
|
128
|
+
if (score > bestScore) {
|
|
129
|
+
bestScore = score;
|
|
130
|
+
bestType = typeId;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Need at least 30% match to classify; otherwise it's general
|
|
134
|
+
return bestScore >= 0.3 ? bestType : "general";
|
|
135
|
+
}
|
|
136
|
+
// ─── Document Validation ──────────────────────────────────────────
|
|
137
|
+
/**
|
|
138
|
+
* Validate a document's structural quality against its spec.
|
|
139
|
+
* If docType is not provided, it will be auto-detected.
|
|
140
|
+
*/
|
|
141
|
+
export function validateDocument(content, docType) {
|
|
142
|
+
const detectedType = docType || classifyDocument(content);
|
|
143
|
+
const spec = DOC_TYPES[detectedType] || DOC_TYPES.general;
|
|
144
|
+
const headings = extractH2Headings(content);
|
|
145
|
+
const sectionContents = extractSectionContents(content);
|
|
146
|
+
const headingLower = headings.map((h) => h.toLowerCase());
|
|
147
|
+
// Check required sections
|
|
148
|
+
const presentSections = [];
|
|
149
|
+
const missingRequired = [];
|
|
150
|
+
for (const section of spec.requiredSections) {
|
|
151
|
+
const found = headingLower.some((h) => h.includes(section.toLowerCase()));
|
|
152
|
+
if (found) {
|
|
153
|
+
presentSections.push(section);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
missingRequired.push(section);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Check recommended sections
|
|
160
|
+
const missingRecommended = [];
|
|
161
|
+
for (const section of spec.recommendedSections) {
|
|
162
|
+
const found = headingLower.some((h) => h.includes(section.toLowerCase()));
|
|
163
|
+
if (found) {
|
|
164
|
+
presentSections.push(section);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
missingRecommended.push(section);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Detect stub sections (placeholder-only content)
|
|
171
|
+
const stubSections = [];
|
|
172
|
+
for (const heading of headings) {
|
|
173
|
+
const sectionContent = sectionContents.get(heading) || "";
|
|
174
|
+
const strippedContent = sectionContent
|
|
175
|
+
.replace(/<!--[\s\S]*?-->/g, "") // remove HTML comments
|
|
176
|
+
.replace(/- \[ \]/g, "") // remove empty checkboxes
|
|
177
|
+
.replace(/^\|.*\|$/gm, "") // remove markdown table rows (skeleton scaffolding)
|
|
178
|
+
.replace(/^###\s+.*$/gm, "") // remove H3 sub-headings (template labels)
|
|
179
|
+
.trim();
|
|
180
|
+
if (strippedContent.length < spec.minContentLength) {
|
|
181
|
+
stubSections.push(heading);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Compute score
|
|
185
|
+
const totalRequired = spec.requiredSections.length;
|
|
186
|
+
const totalRecommended = spec.recommendedSections.length;
|
|
187
|
+
const totalPossible = totalRequired + totalRecommended;
|
|
188
|
+
let score;
|
|
189
|
+
if (totalPossible === 0) {
|
|
190
|
+
// "general" type — score based on having any H2 sections with content
|
|
191
|
+
const nonStubCount = headings.length - stubSections.length;
|
|
192
|
+
score = headings.length > 0 ? Math.min(nonStubCount / Math.max(headings.length, 1), 1) : 0;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const requiredScore = totalRequired > 0 ? presentSections.filter((s) => spec.requiredSections.includes(s)).length / totalRequired : 1;
|
|
196
|
+
const recommendedScore = totalRecommended > 0 ? presentSections.filter((s) => spec.recommendedSections.includes(s)).length / totalRecommended : 0;
|
|
197
|
+
const stubRatio = headings.length > 0 ? stubSections.length / headings.length : 0;
|
|
198
|
+
// Weight: structure (presence of headings) 20%, content density 80%
|
|
199
|
+
const structureScore = requiredScore * 0.12 + recommendedScore * 0.08;
|
|
200
|
+
const contentScore = (1 - stubRatio) * 0.80;
|
|
201
|
+
score = Math.max(0, structureScore + contentScore);
|
|
202
|
+
// If most sections (>=80%) are stubs, cap at 0.30
|
|
203
|
+
if (stubSections.length >= headings.length * 0.8 && headings.length > 0) {
|
|
204
|
+
score = Math.min(score, 0.30);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Generate suggestions
|
|
208
|
+
const suggestions = [];
|
|
209
|
+
for (const section of missingRequired) {
|
|
210
|
+
suggestions.push(`Add required section "## ${section}"`);
|
|
211
|
+
}
|
|
212
|
+
for (const section of missingRecommended) {
|
|
213
|
+
suggestions.push(`Consider adding recommended section "## ${section}"`);
|
|
214
|
+
}
|
|
215
|
+
for (const section of stubSections) {
|
|
216
|
+
suggestions.push(`Section "## ${section}" has little content — expand it`);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
score,
|
|
220
|
+
detectedType,
|
|
221
|
+
presentSections,
|
|
222
|
+
missingRequired,
|
|
223
|
+
missingRecommended,
|
|
224
|
+
stubSections,
|
|
225
|
+
suggestions,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=doc-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-spec.js","sourceRoot":"","sources":["../../src/templates/doc-spec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAgC;IACpD,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,qEAAqE;QAClF,gBAAgB,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC;QAC3D,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,cAAc,CAAC;QACtE,gBAAgB,EAAE,EAAE;KACrB;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,uDAAuD;QACpE,gBAAgB,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC;QAC7D,mBAAmB,EAAE,CAAC,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC;QACnF,gBAAgB,EAAE,EAAE;KACrB;IACD,eAAe,EAAE;QACf,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6DAA6D;QAC1E,gBAAgB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC;QAChE,mBAAmB,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC;QAC9E,gBAAgB,EAAE,EAAE;KACrB;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,oDAAoD;QACjE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;QACvD,mBAAmB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC;QACtE,gBAAgB,EAAE,EAAE;KACrB;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,oDAAoD;QACjE,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC;QACxD,mBAAmB,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC;QAC9E,gBAAgB,EAAE,EAAE;KACrB;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,6DAA6D;QAC1E,gBAAgB,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,mBAAmB,CAAC;QAChE,mBAAmB,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,CAAC;QAC7E,gBAAgB,EAAE,EAAE;KACrB;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,yDAAyD;QACtE,gBAAgB,EAAE,EAAE;QACpB,mBAAmB,EAAE,EAAE;QACvB,gBAAgB,EAAE,EAAE;KACrB;CACF,CAAC;AAEF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEnD,qEAAqE;AAErE,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,cAAc,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,cAAc,GAAG,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,gCAAgC;IAChC,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qEAAqE;AAErE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QAEnC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChE,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,OAAO,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,qEAAqE;AAErE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,OAAgB;IAEhB,MAAM,YAAY,GAAG,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC;IAE1D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D,0BAA0B;IAC1B,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,eAAe,GAAG,cAAc;aACnC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,uBAAuB;aACvD,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,0BAA0B;aAClD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,oDAAoD;aAC9E,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,2CAA2C;aACvE,IAAI,EAAE,CAAC;QAEV,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACzD,MAAM,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAC;IAEvD,IAAI,KAAa,CAAC;IAClB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,sEAAsE;QACtE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QAC3D,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACtI,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,oEAAoE;QACpE,MAAM,cAAc,GAAG,aAAa,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAAC;QACtE,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QAC5C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;QACnD,kDAAkD;QAClD,IAAI,YAAY,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,4BAA4B,OAAO,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC,2CAA2C,OAAO,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,eAAe,OAAO,kCAAkC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,KAAK;QACL,YAAY;QACZ,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@varveai/adit-plans",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "SpecFlow-inspired plan artifact generator for ADIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@varveai/adit-core": "0.3.
|
|
18
|
+
"@varveai/adit-core": "0.3.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/better-sqlite3": "^7.6.13",
|