ai-spector 0.9.21 → 0.9.25
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/contracts/bootstrap/config/prototype-screen-map.json +25 -0
- package/contracts/bootstrap/config/prototype.config.json +17 -0
- package/contracts/bootstrap/config/review-queue-pending.json +4 -0
- package/contracts/bootstrap/config/review-queue-registry.json +4 -0
- package/contracts/bootstrap/config/review.config.json +5 -0
- package/contracts/bootstrap/docs/ENTITY_REGISTRY_MIGRATION.md +192 -0
- package/contracts/bootstrap/docs/MIGRATION.md +463 -0
- package/contracts/bootstrap/docs/README.md +48 -0
- package/contracts/bootstrap/docs/adapters/README.md +32 -0
- package/contracts/bootstrap/docs/guides/COMMENTS_ENTITY_MIGRATION.md +195 -0
- package/contracts/bootstrap/docs/guides/DOCOPS_MANUAL_FALLBACK.md +177 -0
- package/contracts/bootstrap/docs/guides/PROJECT_LAYOUT.md +84 -0
- package/contracts/bootstrap/docs/modules/comments.md +77 -0
- package/contracts/bootstrap/docs/modules/generate.md +25 -0
- package/contracts/bootstrap/docs/modules/graph.md +31 -0
- package/contracts/bootstrap/docs/modules/prototype.md +26 -0
- package/contracts/bootstrap/docs/modules/review.md +25 -0
- package/contracts/bootstrap/docs/modules/translate.md +26 -0
- package/contracts/bootstrap/scripts/migrate-entity-registry.sh +55 -0
- package/contracts/bootstrap/templates/basic-design/db-design-template.md +177 -0
- package/contracts/bootstrap/templates/basic-design/detail-api-template.md +278 -0
- package/contracts/bootstrap/templates/basic-design/detail-screen-template.md +281 -0
- package/contracts/bootstrap/templates/basic-design/list-api-template.md +130 -0
- package/contracts/bootstrap/templates/basic-design/list-screen-template.md +242 -0
- package/contracts/bootstrap/templates/detail-design/common/architecture-overview-template.md +302 -0
- package/contracts/bootstrap/templates/detail-design/common/deployment-infrastructure-template.md +461 -0
- package/contracts/bootstrap/templates/detail-design/common/error-handling-patterns-template.md +460 -0
- package/contracts/bootstrap/templates/detail-design/common/integration-patterns-template.md +410 -0
- package/contracts/bootstrap/templates/detail-design/common/performance-standards-template.md +406 -0
- package/contracts/bootstrap/templates/detail-design/common/security-patterns-template.md +395 -0
- package/contracts/bootstrap/templates/detail-design/feature-detail-design-template.md +773 -0
- package/contracts/bootstrap/templates/detail-design/feature-list-template.md +39 -0
- package/contracts/bootstrap/templates/srs/1-introduction.md +58 -0
- package/contracts/bootstrap/templates/srs/2-overall-description.md +91 -0
- package/contracts/bootstrap/templates/srs/3-use-case-detail-template.md +142 -0
- package/contracts/bootstrap/templates/srs/3-use-cases.md +53 -0
- package/contracts/bootstrap/templates/srs/4-system-feature-detail-template.md +131 -0
- package/contracts/bootstrap/templates/srs/4-system-features-list-template.md +39 -0
- package/contracts/bootstrap/templates/srs/5-data-requirements.md +59 -0
- package/contracts/bootstrap/templates/srs/6-external-interfaces.md +56 -0
- package/contracts/bootstrap/templates/srs/7-quality-attributes.md +74 -0
- package/contracts/bootstrap/templates/srs/8-internationalization.md +36 -0
- package/contracts/bootstrap/templates/srs/9-other-requirements.md +46 -0
- package/contracts/examples/full-docops.config.json +54 -0
- package/contracts/examples/migrate-lifecycle.json +18 -0
- package/contracts/examples/minimal-comment-thread/comment-root.json +10 -0
- package/contracts/examples/minimal-comment-thread/meta_data.json +22 -0
- package/contracts/examples/minimal-docops.config.json +33 -0
- package/contracts/examples/minimal-lifecycle.json +17 -0
- package/contracts/examples/minimal-prototype.config.json +18 -0
- package/contracts/examples/minimal-screen-map.json +25 -0
- package/contracts/examples/registry/minimal-document.entity.json +15 -0
- package/contracts/examples/registry/minimal-manifest.json +7 -0
- package/contracts/examples/registry/minimal-screen.entity.json +11 -0
- package/contracts/examples/review/minimal-pending.json +14 -0
- package/contracts/examples/review/minimal-registry.json +31 -0
- package/contracts/examples/review/minimal-review.config.json +7 -0
- package/contracts/schemas/comments/comment_body.schema.json +19 -0
- package/contracts/schemas/comments/meta_data.schema.json +59 -0
- package/contracts/schemas/docops.config.schema.json +97 -0
- package/contracts/schemas/lifecycle.schema.json +43 -0
- package/contracts/schemas/prototype/config.schema.json +56 -0
- package/contracts/schemas/prototype/screen-map.schema.json +51 -0
- package/contracts/schemas/registry/document.entity.schema.json +38 -0
- package/contracts/schemas/registry/manifest.schema.json +18 -0
- package/contracts/schemas/registry/screen.entity.schema.json +28 -0
- package/contracts/schemas/review/registry.schema.json +72 -0
- package/contracts/schemas/review/review.config.schema.json +42 -0
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/docops/bootstrap.d.ts +4 -1
- package/dist/core/docops/bootstrap.d.ts.map +1 -1
- package/dist/core/docops/bootstrap.js +16 -9
- package/dist/core/docops/bootstrap.js.map +1 -1
- package/dist/core/docops/guide.d.ts +78 -0
- package/dist/core/docops/guide.d.ts.map +1 -0
- package/dist/core/docops/guide.js +554 -0
- package/dist/core/docops/guide.js.map +1 -0
- package/dist/core/docops/migrate.d.ts.map +1 -1
- package/dist/core/docops/migrate.js +40 -6
- package/dist/core/docops/migrate.js.map +1 -1
- package/dist/core/operations/docops.d.ts +8 -0
- package/dist/core/operations/docops.d.ts.map +1 -1
- package/dist/core/operations/docops.js +40 -0
- package/dist/core/operations/docops.js.map +1 -1
- package/dist/core/upgrade/checklist.json +2 -2
- package/package.json +2 -1
- package/scaffold/claude/.claude/skills/_skill-router.md +11 -8
- package/scaffold/claude/.claude/skills/ai-spector/references/cli-failures.md +3 -3
- package/scaffold/claude/.claude/skills/ai-spector/references/docops-migrate.md +112 -0
- package/scaffold/claude/.claude/skills/ai-spector/references/help.md +1 -1
- package/scaffold/claude/.claude/skills/ai-spector/references/runbook.md +49 -26
- package/scaffold/claude/.claude/skills/ai-spector/skill.md +3 -2
- package/scaffold/cursor/skills/_skill-router.md +11 -8
- package/scaffold/cursor/skills/ai-spector/SKILL.md +3 -2
- package/scaffold/cursor/skills/ai-spector/references/cli-failures.md +3 -3
- package/scaffold/cursor/skills/ai-spector/references/docops-migrate.md +112 -0
- package/scaffold/cursor/skills/ai-spector/references/help.md +1 -1
- package/scaffold/cursor/skills/ai-spector/references/runbook.md +49 -26
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://kari-writer/contracts/schemas/lifecycle.schema.json",
|
|
4
|
+
"title": "DocopsLifecycle",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["version", "intent", "adapter", "updatedAt", "updatedBy", "steps"],
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"version": { "const": 1 },
|
|
10
|
+
"intent": { "enum": ["greenfield", "migrate"] },
|
|
11
|
+
"adapter": { "enum": ["ai-spector", "custom", "none"] },
|
|
12
|
+
"updatedAt": { "type": "string", "format": "date-time" },
|
|
13
|
+
"updatedBy": { "type": "string", "minLength": 1 },
|
|
14
|
+
"steps": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"required": ["id", "status"],
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"properties": {
|
|
21
|
+
"id": {
|
|
22
|
+
"enum": [
|
|
23
|
+
"project-created",
|
|
24
|
+
"git-connected",
|
|
25
|
+
"docops-init",
|
|
26
|
+
"local-adapter-ready",
|
|
27
|
+
"legacy-aligned",
|
|
28
|
+
"registry-synced",
|
|
29
|
+
"data-source-added",
|
|
30
|
+
"first-docs-generated",
|
|
31
|
+
"review-queue-synced",
|
|
32
|
+
"first-push-synced"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"status": { "enum": ["pending", "in_progress", "done", "skipped", "blocked"] },
|
|
36
|
+
"completedAt": { "type": "string", "format": "date-time" },
|
|
37
|
+
"helpRef": { "type": "string" },
|
|
38
|
+
"blockedReason": { "type": "string" }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/prototype/config.schema.json",
|
|
4
|
+
"title": "PrototypeConfig",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schemaVersion", "buildMode"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": {
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"const": 1
|
|
12
|
+
},
|
|
13
|
+
"version": {
|
|
14
|
+
"type": "integer",
|
|
15
|
+
"description": "Legacy alias used by ai-spector CLI"
|
|
16
|
+
},
|
|
17
|
+
"buildMode": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": ["static", "spa"]
|
|
20
|
+
},
|
|
21
|
+
"techStack": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["html", "vue", "react", "nuxt", "next", "svelte", "angular"]
|
|
24
|
+
},
|
|
25
|
+
"prototypeDir": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Repo-relative prototype source folder (default: prototype)"
|
|
28
|
+
},
|
|
29
|
+
"srcDir": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Repo-relative source folder (default: prototype/src)"
|
|
32
|
+
},
|
|
33
|
+
"htpasswdFile": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Repo-relative nginx htpasswd path (default: prototype/.htpasswd)"
|
|
36
|
+
},
|
|
37
|
+
"basicAuth": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"properties": {
|
|
40
|
+
"username": { "type": "string", "minLength": 1 },
|
|
41
|
+
"password": { "type": "string" },
|
|
42
|
+
"setAt": { "type": "string" }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"listScreenDoc": { "type": "string" },
|
|
46
|
+
"screenIndexSection": { "type": "string" },
|
|
47
|
+
"screenDetailDir": { "type": "string" },
|
|
48
|
+
"defaultTheme": { "type": "string" },
|
|
49
|
+
"defaultScreenId": { "type": "string" },
|
|
50
|
+
"prototypeBypassAuth": { "type": "boolean" },
|
|
51
|
+
"reviewHost": { "type": "string" },
|
|
52
|
+
"projectId": { "type": "string" },
|
|
53
|
+
"deployVersion": { "type": "string" },
|
|
54
|
+
"directReviewUrl": { "type": "boolean" }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/prototype/screen-map.schema.json",
|
|
4
|
+
"title": "PrototypeScreenMap",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schemaVersion", "buildMode", "screens"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": {
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"const": 1
|
|
12
|
+
},
|
|
13
|
+
"buildMode": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"enum": ["static", "spa"]
|
|
16
|
+
},
|
|
17
|
+
"defaultScreenId": { "type": "string" },
|
|
18
|
+
"defaultScreen": { "$ref": "#/$defs/screenEntry" },
|
|
19
|
+
"reviewHost": { "type": "string" },
|
|
20
|
+
"projectId": { "type": "string" },
|
|
21
|
+
"deployVersion": { "type": "string" },
|
|
22
|
+
"directReviewUrl": { "type": "boolean" },
|
|
23
|
+
"screens": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": { "$ref": "#/$defs/screenEntry" }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"$defs": {
|
|
29
|
+
"screenEntry": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": true,
|
|
32
|
+
"required": ["screenId", "displayName", "screenDocPath", "prototypePath", "route_exists"],
|
|
33
|
+
"properties": {
|
|
34
|
+
"screenId": { "type": "string", "minLength": 1 },
|
|
35
|
+
"displayName": { "type": "string" },
|
|
36
|
+
"screenDocPath": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Language-neutral screen design doc path (no docs/ prefix)"
|
|
39
|
+
},
|
|
40
|
+
"screenDocs": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": { "type": "string" },
|
|
43
|
+
"description": "Per-language repo-relative doc paths"
|
|
44
|
+
},
|
|
45
|
+
"prototypePath": { "type": "string" },
|
|
46
|
+
"route_exists": { "type": "boolean" },
|
|
47
|
+
"reviewUrl": { "type": ["string", "null"] }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/registry/document.entity.schema.json",
|
|
4
|
+
"title": "DocopsDocumentEntity",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"entityId",
|
|
10
|
+
"kind",
|
|
11
|
+
"docType",
|
|
12
|
+
"logicalPath",
|
|
13
|
+
"repoDocs"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"schemaVersion": { "type": "integer", "const": 1 },
|
|
17
|
+
"entityId": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
|
|
21
|
+
},
|
|
22
|
+
"kind": { "type": "string", "enum": ["document", "data_source"] },
|
|
23
|
+
"docType": { "type": "string", "minLength": 1 },
|
|
24
|
+
"logicalPath": { "type": "string", "minLength": 1 },
|
|
25
|
+
"repoDocs": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"minProperties": 1,
|
|
28
|
+
"additionalProperties": { "type": "string", "minLength": 1 }
|
|
29
|
+
},
|
|
30
|
+
"displayName": { "type": "string" },
|
|
31
|
+
"aliases": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": { "type": "string", "minLength": 1 }
|
|
34
|
+
},
|
|
35
|
+
"createdAt": { "type": "string" },
|
|
36
|
+
"updatedAt": { "type": "string" }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/registry/manifest.schema.json",
|
|
4
|
+
"title": "DocopsRegistryManifest",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schemaVersion", "buildMode"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "type": "integer", "const": 1 },
|
|
10
|
+
"buildMode": { "type": "string", "enum": ["static", "spa"] },
|
|
11
|
+
"defaultScreenId": { "type": "string" },
|
|
12
|
+
"reviewHost": { "type": "string" },
|
|
13
|
+
"projectId": { "type": "string" },
|
|
14
|
+
"deployVersion": { "type": "string" },
|
|
15
|
+
"directReviewUrl": { "type": "boolean" },
|
|
16
|
+
"themeName": { "type": "string" }
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/registry/screen.entity.schema.json",
|
|
4
|
+
"title": "DocopsScreenEntity",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"screenId",
|
|
10
|
+
"kind",
|
|
11
|
+
"prototypePath",
|
|
12
|
+
"route_exists"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"schemaVersion": { "type": "integer", "const": 1 },
|
|
16
|
+
"screenId": { "type": "string", "minLength": 1 },
|
|
17
|
+
"kind": { "type": "string", "const": "prototype_screen" },
|
|
18
|
+
"displayName": { "type": "string" },
|
|
19
|
+
"documentEntityId": {
|
|
20
|
+
"type": ["string", "null"],
|
|
21
|
+
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
|
|
22
|
+
},
|
|
23
|
+
"prototypePath": { "type": "string", "minLength": 1 },
|
|
24
|
+
"route_exists": { "type": "boolean" },
|
|
25
|
+
"reviewUrl": { "type": ["string", "null"] },
|
|
26
|
+
"updatedAt": { "type": "string" }
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/review/registry.schema.json",
|
|
4
|
+
"title": "ReviewRegistry",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["version", "documents"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"version": {
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"const": 3
|
|
12
|
+
},
|
|
13
|
+
"documents": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"additionalProperties": { "$ref": "#/$defs/documentEntry" }
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"$defs": {
|
|
19
|
+
"vote": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": true,
|
|
22
|
+
"required": ["by", "username", "role", "decision", "at"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"by": { "type": "string" },
|
|
25
|
+
"username": { "type": "string" },
|
|
26
|
+
"role": { "type": "string", "enum": ["user", "client"] },
|
|
27
|
+
"decision": { "type": "string", "enum": ["approve", "decline"] },
|
|
28
|
+
"at": { "type": "string" },
|
|
29
|
+
"note": { "type": "string" }
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"track": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"additionalProperties": true,
|
|
35
|
+
"required": ["status", "votes"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"status": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"enum": ["pending", "approved", "rejected", "needs_review"]
|
|
40
|
+
},
|
|
41
|
+
"votes": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"items": { "$ref": "#/$defs/vote" }
|
|
44
|
+
},
|
|
45
|
+
"quorumMetAt": { "type": ["string", "null"] },
|
|
46
|
+
"closedAt": { "type": ["string", "null"] },
|
|
47
|
+
"closedBy": { "type": ["string", "null"] },
|
|
48
|
+
"closeReason": { "type": ["string", "null"] },
|
|
49
|
+
"reopenedAt": { "type": ["string", "null"] },
|
|
50
|
+
"invalidatedAt": { "type": ["string", "null"] }
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"documentEntry": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": true,
|
|
56
|
+
"required": ["logicalPath", "overallStatus", "internal", "client"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"logicalPath": { "type": "string", "minLength": 1 },
|
|
59
|
+
"docPath": { "type": "string" },
|
|
60
|
+
"contentHash": { "type": "string" },
|
|
61
|
+
"snapshotRef": { "type": "string" },
|
|
62
|
+
"overallStatus": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"enum": ["pending_internal", "pending_client", "approved", "rejected"]
|
|
65
|
+
},
|
|
66
|
+
"internal": { "$ref": "#/$defs/track" },
|
|
67
|
+
"client": { "$ref": "#/$defs/track" },
|
|
68
|
+
"lastEventAt": { "type": "string" }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://kari-writer.local/contracts/schemas/review/review.config.schema.json",
|
|
4
|
+
"title": "ReviewConfig",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schemaVersion", "extends"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"const": "1.0"
|
|
12
|
+
},
|
|
13
|
+
"extends": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 1,
|
|
16
|
+
"description": "Preset id (e.g. kaopiz-default)"
|
|
17
|
+
},
|
|
18
|
+
"gate": { "type": "object", "additionalProperties": true },
|
|
19
|
+
"baseline": { "type": "object", "additionalProperties": true },
|
|
20
|
+
"rules": { "type": "object", "additionalProperties": true },
|
|
21
|
+
"overrides": { "type": "object", "additionalProperties": true },
|
|
22
|
+
"suppressions": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": { "type": "object", "additionalProperties": true }
|
|
25
|
+
},
|
|
26
|
+
"required_section_paths": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": { "type": "string" }
|
|
29
|
+
},
|
|
30
|
+
"meta": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": true,
|
|
33
|
+
"required": ["source"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"source": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Who last wrote this file (e.g. db, agent, cli)"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
package/dist/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ import { applyPrimaryLanguageOutputs } from "./core/graph/translation.js";
|
|
|
10
10
|
import { loadDocflowConfig } from "./core/config/load.js";
|
|
11
11
|
import { validateGraph, formatIssues } from "./core/operations/validate.js";
|
|
12
12
|
import { runInit } from "./core/operations/init.js";
|
|
13
|
-
import { runDocopsInit, runDocopsMigrate, runDocopsCommentsMigrate, runDocopsRegistrySync, runDocopsReviewRegistryMigrate, runDocopsStatus, runDocopsCheck, runDocopsLayout } from "./core/operations/docops.js";
|
|
13
|
+
import { runDocopsInit, runDocopsMigrate, runDocopsCommentsMigrate, runDocopsRegistrySync, runDocopsReviewRegistryMigrate, runDocopsStatus, runDocopsCheck, runDocopsLayout, runDocopsGuide } from "./core/operations/docops.js";
|
|
14
14
|
import { runLifecycleSync } from "./core/operations/lifecycle.js";
|
|
15
15
|
import { runLangAdd, runLangSetClient, runLangSetInternal } from "./core/operations/lang.js";
|
|
16
16
|
import { runLangQueueFailed, runLangQueueFail, runLangQueuePending, runLangQueueResolved, runLangQueueRetry, runLangQueueScan, } from "./core/operations/lang-queue.js";
|
|
@@ -1400,6 +1400,19 @@ docops
|
|
|
1400
1400
|
});
|
|
1401
1401
|
process.exitCode = code;
|
|
1402
1402
|
});
|
|
1403
|
+
docops
|
|
1404
|
+
.command("guide")
|
|
1405
|
+
.description("Agent migration guide: current vs expected structure, files, config — start here when user says migrate")
|
|
1406
|
+
.option("--json", "JSON output for agents")
|
|
1407
|
+
.option("--prompt", "Print only the agent prompt")
|
|
1408
|
+
.action(async (opts, cmd) => {
|
|
1409
|
+
const code = await runDocopsGuide({
|
|
1410
|
+
root: projectRootOpt(cmd),
|
|
1411
|
+
json: opts.json,
|
|
1412
|
+
prompt: opts.prompt,
|
|
1413
|
+
});
|
|
1414
|
+
process.exitCode = code;
|
|
1415
|
+
});
|
|
1403
1416
|
docops
|
|
1404
1417
|
.command("init")
|
|
1405
1418
|
.description("Scaffold Writer-ready .docops/ contract")
|
|
@@ -1423,7 +1436,19 @@ docops
|
|
|
1423
1436
|
.option("--repair", "Fill gaps in existing .docops/ without overwriting")
|
|
1424
1437
|
.option("--templates-only", "Copy templates only")
|
|
1425
1438
|
.option("--from-docflow", "Split legacy docflow.config.json into docops.config.json + engine.json")
|
|
1439
|
+
.option("--guide", "Show agent migration guide (current vs expected); alias for docops guide")
|
|
1440
|
+
.option("--json", "JSON output (with --guide)")
|
|
1441
|
+
.option("--prompt", "Agent prompt only (with --guide)")
|
|
1426
1442
|
.action(async (opts, cmd) => {
|
|
1443
|
+
if (opts.guide) {
|
|
1444
|
+
await runDocopsMigrate({
|
|
1445
|
+
root: projectRootOpt(cmd),
|
|
1446
|
+
guide: true,
|
|
1447
|
+
json: opts.json,
|
|
1448
|
+
prompt: opts.prompt,
|
|
1449
|
+
});
|
|
1450
|
+
return;
|
|
1451
|
+
}
|
|
1427
1452
|
await runDocopsMigrate({
|
|
1428
1453
|
root: projectRootOpt(cmd),
|
|
1429
1454
|
dryRun: opts.dryRun,
|