@pm_zhousl/xinyun-ai-init 1.16.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -15
- package/init/xinyun-ai-init/README.md +112 -1117
- package/init/xinyun-ai-init/rules/coordination.md +30 -20
- package/init/xinyun-ai-init/rules/directory-self-completion.md +4 -0
- package/init/xinyun-ai-init/rules/init-rules.md +6 -0
- package/init/xinyun-ai-init/rules/session-workbench.md +6 -0
- package/init/xinyun-ai-init/rules/skills.md +8 -0
- package/init/xinyun-ai-init/rules/temporary-sessions.md +4 -0
- package/init/xinyun-ai-init/rules/upgrade-rules.md +6 -0
- package/init/xinyun-ai-init/rules/v2.0.0-shared-project-conversations.md +68 -0
- package/init/xinyun-ai-init/rules/v2.0.0-single-session-skills.md +89 -0
- package/init/xinyun-ai-init/templates/AGENTS.template.md +16 -231
- package/init/xinyun-ai-init/templates/README.template.md +26 -39
- package/init/xinyun-ai-init/templates/agent-profile.template.json +10 -15
- package/init/xinyun-ai-init/templates/bootstrap-snapshot.template.json +6 -1
- package/init/xinyun-ai-init/templates/control-plane-index.template.json +32 -26
- package/init/xinyun-ai-init/templates/conversation-binding.template.json +26 -0
- package/init/xinyun-ai-init/templates/conversation-event.template.json +24 -0
- package/init/xinyun-ai-init/templates/conversation-registry.template.json +15 -0
- package/init/xinyun-ai-init/templates/conversation-stream-head.template.json +14 -0
- package/init/xinyun-ai-init/templates/conversation-sync-cursor.template.json +13 -0
- package/init/xinyun-ai-init/templates/coordination-change-ledger.template.json +6 -3
- package/init/xinyun-ai-init/templates/coordination-conflict-record.template.json +6 -1
- package/init/xinyun-ai-init/templates/coordination-project-facts.template.json +5 -3
- package/init/xinyun-ai-init/templates/core-rules.template.md +42 -621
- package/init/xinyun-ai-init/templates/current-task.template.md +24 -322
- package/init/xinyun-ai-init/templates/handoff.template.json +9 -14
- package/init/xinyun-ai-init/templates/init-result.template.json +21 -216
- package/init/xinyun-ai-init/templates/initialization-recovery.template.json +12 -17
- package/init/xinyun-ai-init/templates/initialization-stages.template.json +10 -10
- package/init/xinyun-ai-init/templates/local-query-index.template.json +1 -1
- package/init/xinyun-ai-init/templates/manifest.template.json +80 -387
- package/init/xinyun-ai-init/templates/multi-conversation-migration.template.json +24 -0
- package/init/xinyun-ai-init/templates/onboarding-report.template.json +22 -17
- package/init/xinyun-ai-init/templates/orchestrator.template.json +20 -10
- package/init/xinyun-ai-init/templates/preflight-report.template.json +18 -39
- package/init/xinyun-ai-init/templates/project-check.template.md +42 -184
- package/init/xinyun-ai-init/templates/project-context.template.json +20 -0
- package/init/xinyun-ai-init/templates/project-guide.template.md +42 -249
- package/init/xinyun-ai-init/templates/project-index.template.json +47 -415
- package/init/xinyun-ai-init/templates/project-status.template.json +17 -42
- package/init/xinyun-ai-init/templates/provider-adapter.template.json +20 -33
- package/init/xinyun-ai-init/templates/re-takeover-record.template.json +37 -0
- package/init/xinyun-ai-init/templates/session-binding.template.json +21 -18
- package/init/xinyun-ai-init/templates/single-session-migration.template.json +31 -0
- package/init/xinyun-ai-init/templates/skill-run-record.template.json +10 -6
- package/init/xinyun-ai-init/templates/skill-runtime-route.template.json +17 -4
- package/init/xinyun-ai-init/templates/skills-assignments.template.json +18 -13
- package/init/xinyun-ai-init/templates/skills-registry.template.json +24 -2
- package/init/xinyun-ai-init/templates/sync-check.template.json +23 -0
- package/init/xinyun-ai-init/templates/takeover-gate.template.json +13 -8
- package/init/xinyun-ai-init/templates/task-graph.template.json +5 -14
- package/init/xinyun-ai-init/templates/task-index.template.json +27 -84
- package/init/xinyun-ai-init/templates/task-lease.template.json +19 -0
- package/init/xinyun-ai-init/templates/task-main.template.md +28 -37
- package/init/xinyun-ai-init/version.json +4 -3
- package/package.json +8 -3
- package/scripts/collect-v2-evidence.js +35 -0
- package/scripts/publish-with-token.ps1 +6 -16
- package/scripts/run-v2-runtime-probe.js +110 -0
- package/scripts/verify-init-package.js +5 -0
- package/scripts/verify-multi-conversation-contract.js +61 -0
- package/scripts/verify-re-takeover-contract.js +54 -0
- package/scripts/verify-release-gate.js +21 -13
- package/scripts/verify-rules-package.js +7 -0
- package/scripts/verify-rules-tarball-security.js +1 -1
- package/scripts/verify-v2-package.js +210 -0
- package/scripts/verify-v2-tarball.js +73 -0
- package/test-scenarios/multi-conversation-evidence.json +26 -0
- package/test-scenarios/multi-conversation-scenarios.md +16 -0
- package/test-scenarios/re-takeover-evidence.json +20 -0
- package/test-scenarios/re-takeover-scenarios.md +33 -0
- package/test-scenarios/v2.0.0-behavior-evidence.json +40 -0
- package/test-scenarios/v2.0.0-scenarios.md +21 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion":
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"executionModel": "shared-project-multi-conversation-runtime",
|
|
3
4
|
"initializationId": "initialization-template",
|
|
4
5
|
"status": "initializing",
|
|
5
|
-
"statusEnum": ["initializing", "partial", "blocked", "ready"],
|
|
6
6
|
"stageStatusEnum": ["pending", "running", "completed", "skipped", "partial", "blocked", "recovery-required"],
|
|
7
7
|
"stages": [
|
|
8
|
-
{"stageId": "preflight", "status": "pending", "attempt": 0, "
|
|
9
|
-
{"stageId": "
|
|
10
|
-
{"stageId": "
|
|
11
|
-
{"stageId": "
|
|
12
|
-
{"stageId": "
|
|
13
|
-
{"stageId": "
|
|
14
|
-
{"stageId": "onboarding", "status": "pending", "attempt": 0, "
|
|
15
|
-
{"stageId": "final-gate", "status": "pending", "attempt": 0, "
|
|
8
|
+
{"stageId": "preflight", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
9
|
+
{"stageId": "task-transaction", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
10
|
+
{"stageId": "main-session", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
11
|
+
{"stageId": "skill-registry", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
12
|
+
{"stageId": "codegraph", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
13
|
+
{"stageId": "legacy-migration", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
14
|
+
{"stageId": "onboarding", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null},
|
|
15
|
+
{"stageId": "final-gate", "status": "pending", "attempt": 0, "startedAt": null, "finishedAt": null, "failureReason": null}
|
|
16
16
|
],
|
|
17
17
|
"updatedAt": null
|
|
18
18
|
}
|
|
@@ -1,402 +1,95 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"xinyunAiVersion": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"takeoverGate": "xinyun-ai/takeover-gate.json",
|
|
22
|
-
"orchestrator": "xinyun-ai/tasks/orchestrator.json",
|
|
23
|
-
"taskGraph": "xinyun-ai/tasks/task-graph.json",
|
|
24
|
-
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
25
|
-
"finalDelivery": "xinyun-ai/final-delivery.json",
|
|
26
|
-
"statusEnum": ["ready", "partial", "blocked", "manual-required"],
|
|
27
|
-
"status": "manual-required"
|
|
28
|
-
},
|
|
29
|
-
"index": { "primary": "json_markdown", "sqlite": "optional" },
|
|
30
|
-
"capabilities": {
|
|
31
|
-
"confirmationGate": true,
|
|
32
|
-
"legacyRuleHandoff": true,
|
|
33
|
-
"lightFrameworkDetection": true,
|
|
34
|
-
"focusedSearchResponse": true,
|
|
35
|
-
"safeExecutionGate": true,
|
|
36
|
-
"restrainedProductionCopy": true,
|
|
37
|
-
"doubleSessionMvp": true,
|
|
38
|
-
"unifiedEntryPriority": true,
|
|
39
|
-
"legacyHandoffClassification": true,
|
|
40
|
-
"globalReview": true,
|
|
41
|
-
"chineseRequirementParsing": true,
|
|
42
|
-
"frameworkEvidenceBudget": true,
|
|
43
|
-
"readonlyGitRepositoryIndex": true,
|
|
44
|
-
"boundedFieldImpactReview": true,
|
|
45
|
-
"fieldChangeRequirementRouting": true,
|
|
46
|
-
"teamResponsibilityClosure": true,
|
|
47
|
-
"workspaceTaskHistory": true,
|
|
48
|
-
"idempotentInitialization": true,
|
|
49
|
-
"upgradeConflictProtection": true,
|
|
50
|
-
"capabilityDetectionEvidence": true,
|
|
51
|
-
"localTaskLock": true,
|
|
52
|
-
"sensitiveRedaction": true,
|
|
53
|
-
"rulePackageConsistencyCheck": true,
|
|
54
|
-
"technologyStackProfile": true,
|
|
55
|
-
"thinkphpDeepProfile": true,
|
|
56
|
-
"htmlToClientMigrationPreparation": true,
|
|
57
|
-
"namedInitializationTaskTree": true,
|
|
58
|
-
"taskArchiveTransactions": true,
|
|
59
|
-
"codeGraphRequiredInitialization": true,
|
|
60
|
-
"roleExecutionVisibility": true,
|
|
61
|
-
"codexRoleSessionOrchestration": true,
|
|
62
|
-
"sharedProjectFactsCoordination": true,
|
|
63
|
-
"skillRouting": true,
|
|
64
|
-
"frontendCouplingAudit": true,
|
|
65
|
-
"temporaryProgrammerSessions": true
|
|
66
|
-
,"projectSessionIsolation": true
|
|
67
|
-
,"roleDisplayNaming": true
|
|
68
|
-
,"technicalLandscapeCoordination": true
|
|
69
|
-
,"databaseSqlOnlyAuthorization": true
|
|
70
|
-
,"projectAiTakeoverGate": true
|
|
71
|
-
,"hostPreflightRecovery": true
|
|
72
|
-
,"manualRoleSessionBinding": true
|
|
73
|
-
,"codeGraphIncrementalReuse": true
|
|
74
|
-
,"sharedProjectSnapshot": true
|
|
75
|
-
,"initializationTiming": true
|
|
76
|
-
,"hostCapabilityPreflight": true
|
|
77
|
-
,"projectStatusGate": true
|
|
78
|
-
,"takeoverBaseline": true
|
|
79
|
-
,"providerSpecificSessionBinding": true
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"xinyunAiVersion": "2.0.0",
|
|
4
|
+
"executionModel": "shared-project-multi-conversation-runtime",
|
|
5
|
+
"projectName": null,
|
|
6
|
+
"projectIdentityPath": "xinyun-ai/project-identity.json",
|
|
7
|
+
"currentTaskPath": "xinyun-ai/current-task.md",
|
|
8
|
+
"rulesEntry": "xinyun-ai/rules/core-rules.md",
|
|
9
|
+
"projectIndexPath": "xinyun-ai/index/project-index.json",
|
|
10
|
+
"controlPlaneIndexPath": "xinyun-ai/index/control-plane-index.json",
|
|
11
|
+
"projectContextPath": "xinyun-ai/project-context.json",
|
|
12
|
+
"reTakeover": {
|
|
13
|
+
"recordPath": "xinyun-ai/index/re-takeover-record.json",
|
|
14
|
+
"snapshotPath": "xinyun-ai/index/bootstrap-snapshot.json",
|
|
15
|
+
"mode": "read-project-then-validate-execution",
|
|
16
|
+
"contextStatusEnum": ["unknown", "assessing", "context-ready", "partial", "stale", "blocked"],
|
|
17
|
+
"understandingStatusEnum": ["unknown", "quick", "expanded", "verified", "stale"],
|
|
18
|
+
"incrementalBySourceHash": true,
|
|
19
|
+
"executionRequiresConversationBindingEvidence": true,
|
|
20
|
+
"threadIdPolicy": "host-thread-candidate-only"
|
|
80
21
|
},
|
|
81
22
|
"tasking": {
|
|
82
|
-
"currentTask": "xinyun-ai/current-task.md",
|
|
83
23
|
"tasksDirectory": "xinyun-ai/tasks/",
|
|
84
|
-
"idempotencyDirectory": "xinyun-ai/tasks/.idempotency/",
|
|
85
24
|
"taskIndex": "xinyun-ai/tasks/task-index.json",
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"takeoverBaseline": "xinyun-ai/index/takeover-baseline.json",
|
|
108
|
-
"controlPlaneIndex": "xinyun-ai/index/control-plane-index.json",
|
|
109
|
-
"providerAdapter": "xinyun-ai/sessions/provider-adapter.json",
|
|
110
|
-
"manualSessionRecovery": "xinyun-ai/sessions/manual-session-recovery.json",
|
|
111
|
-
"initializationChangeReport": "xinyun-ai/index/initialization-change-report.json"
|
|
112
|
-
},
|
|
113
|
-
"roleSessions": {
|
|
114
|
-
"enabled": true,
|
|
115
|
-
"provider": "codex",
|
|
116
|
-
"directory": "xinyun-ai/sessions/roles/",
|
|
117
|
-
"bindings": "xinyun-ai/sessions/role-session-bindings.json",
|
|
118
|
-
"bindingTemplate": "xinyun-ai-init/templates/role-session-binding.template.json",
|
|
119
|
-
"providerSessionBindingTemplate": "xinyun-ai-init/templates/provider-session-binding.template.json",
|
|
120
|
-
"providerSessionBindings": "xinyun-ai/sessions/provider-session-bindings.json",
|
|
121
|
-
"parentSessionId": null,
|
|
122
|
-
"targetVersion": "1.16.0",
|
|
123
|
-
"requiredRoleCount": 5,
|
|
124
|
-
"statusEnum": [
|
|
125
|
-
"pending",
|
|
126
|
-
"creating",
|
|
127
|
-
"created",
|
|
128
|
-
"onboarding",
|
|
129
|
-
"ready",
|
|
130
|
-
"blocked",
|
|
131
|
-
"failed",
|
|
132
|
-
"closed"
|
|
25
|
+
"taskGraph": "xinyun-ai/tasks/task-graph.json",
|
|
26
|
+
"transactionsDirectory": "xinyun-ai/tasks/.transactions/",
|
|
27
|
+
"idempotencyDirectory": "xinyun-ai/tasks/.idempotency/",
|
|
28
|
+
"currentTask": "xinyun-ai/current-task.md",
|
|
29
|
+
"atomicWriteRequired": true,
|
|
30
|
+
"consistencyFailureStatus": "blocked"
|
|
31
|
+
},
|
|
32
|
+
"conversations": {
|
|
33
|
+
"projectContext": "xinyun-ai/project-context.json",
|
|
34
|
+
"registry": "xinyun-ai/conversations/registry.json",
|
|
35
|
+
"bindingsDirectory": "xinyun-ai/conversations/bindings/",
|
|
36
|
+
"activeConversationLimit": null,
|
|
37
|
+
"bindingTemplate": "xinyun-ai-init/templates/conversation-binding.template.json",
|
|
38
|
+
"requiredEvidenceCategories": [
|
|
39
|
+
"create-or-reuse",
|
|
40
|
+
"send",
|
|
41
|
+
"receive",
|
|
42
|
+
"query-status",
|
|
43
|
+
"recover",
|
|
44
|
+
"close",
|
|
45
|
+
"control-file-read-write"
|
|
133
46
|
],
|
|
134
|
-
"
|
|
135
|
-
|
|
136
|
-
"projectRootHash",
|
|
137
|
-
"workspaceScope",
|
|
138
|
-
"repositoryScopeHash",
|
|
139
|
-
"workstream",
|
|
140
|
-
"taskId",
|
|
141
|
-
"roleId",
|
|
142
|
-
"provider",
|
|
143
|
-
"targetVersion"
|
|
144
|
-
],
|
|
145
|
-
"algorithm": "RFC8785-JCS-SHA-256",
|
|
146
|
-
"duplicatePolicy": "reuse-one-primary-preserve-history",
|
|
147
|
-
"legacyCreationIndexFields": ["taskId", "roleId", "provider", "targetVersion"],
|
|
148
|
-
"legacyCreationIndexPolicy": "compatibility lookup only; never used for candidate selection or cross-project reuse"
|
|
149
|
-
},
|
|
150
|
-
"hostUnsupportedPolicy": "local-degraded-no-fake-session-id",
|
|
151
|
-
"readyPolicy": "created session enters onboarding first; ready requires role understanding, responsibility confirmation, and execution eligibility gates."
|
|
152
|
-
},
|
|
153
|
-
"coordination": {
|
|
154
|
-
"enabled": true,
|
|
155
|
-
"directory": "xinyun-ai/coordination/",
|
|
156
|
-
"projectFacts": "xinyun-ai/coordination/project-facts.json",
|
|
157
|
-
"changeLedger": "xinyun-ai/coordination/change-ledger.json",
|
|
158
|
-
"contractSnapshots": "xinyun-ai/coordination/contract-snapshots/",
|
|
159
|
-
"conflictRecords": "xinyun-ai/coordination/conflict-records/",
|
|
160
|
-
"transactions": "xinyun-ai/coordination/.transactions/",
|
|
161
|
-
"statusSources": {
|
|
162
|
-
"taskStatus": "xinyun-ai/tasks/task-index.json",
|
|
163
|
-
"changeStatus": "xinyun-ai/coordination/change-ledger.json",
|
|
164
|
-
"conflictStatus": "xinyun-ai/coordination/conflict-records/<conflictId>.json",
|
|
165
|
-
"refreshStatus": "affected task record"
|
|
166
|
-
},
|
|
167
|
-
"transactionPhaseEnum": ["prepared", "validated", "renamed", "revision-updated", "committed", "recovery-required", "blocked"]
|
|
47
|
+
"legacyProviderSessionPolicy": "compatibility-only",
|
|
48
|
+
"threadIdPolicy": "host-thread-reference-only"
|
|
168
49
|
},
|
|
169
50
|
"skills": {
|
|
170
|
-
"enabled": true,
|
|
171
|
-
"directory": "xinyun-ai/skills/",
|
|
172
51
|
"registry": "xinyun-ai/skills/registry.json",
|
|
173
52
|
"assignments": "xinyun-ai/skills/assignments.json",
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
"
|
|
180
|
-
"directory": "xinyun-ai/frontend-audits/",
|
|
181
|
-
"recordTemplate": "xinyun-ai-init/templates/frontend-audit.template.json",
|
|
182
|
-
"defaultDecision": "audit-only"
|
|
183
|
-
},
|
|
184
|
-
"temporarySessions": {
|
|
185
|
-
"enabled": true,
|
|
186
|
-
"directory": "xinyun-ai/sessions/temporary/",
|
|
187
|
-
"recordTemplate": "xinyun-ai-init/templates/temporary-session.template.json",
|
|
188
|
-
"maxConcurrent": 3,
|
|
189
|
-
"sessionStatusField": "status",
|
|
190
|
-
"occupancyStatusEnum": ["occupied", "released", "unknown"]
|
|
191
|
-
},
|
|
192
|
-
"taskTree": {
|
|
193
|
-
"enabled": true,
|
|
194
|
-
"mainTaskTitlePattern": "项目初始化:<项目显示名>",
|
|
195
|
-
"mainTaskPathPattern": "xinyun-ai/tasks/<taskId>.md",
|
|
196
|
-
"roleSubtaskPathPattern": "xinyun-ai/tasks/<taskId>/subtasks/<roleTaskId>.md",
|
|
197
|
-
"taskIndex": "xinyun-ai/tasks/task-index.json",
|
|
198
|
-
"archiveDirectory": "xinyun-ai/tasks/archive/",
|
|
199
|
-
"archiveTransactionsDirectory": "xinyun-ai/tasks/.archive-transactions/",
|
|
200
|
-
"roleTaskCount": 5,
|
|
201
|
-
"roleExecutionDirectory": "xinyun-ai/tasks/role-execution/",
|
|
202
|
-
"roleExecutionPathPattern": "xinyun-ai/tasks/role-execution/<roleTaskId>.md",
|
|
203
|
-
"roleExecutionTaskKind": "role-execution",
|
|
204
|
-
"roleExecutionPriority": {
|
|
205
|
-
"project-owner": 10,
|
|
206
|
-
"project-product": 20,
|
|
207
|
-
"chief-engineer": 30,
|
|
208
|
-
"programmer": 40,
|
|
209
|
-
"test-reviewer": 50
|
|
210
|
-
},
|
|
211
|
-
"taskSortOrder": ["priority", "createdAt", "roleId", "taskId"]
|
|
53
|
+
"routesDirectory": "xinyun-ai/skills/routes/",
|
|
54
|
+
"usageRecordsDirectory": "xinyun-ai/skills/usage-records/",
|
|
55
|
+
"routeTemplate": "xinyun-ai-init/templates/skill-runtime-route.template.json",
|
|
56
|
+
"runTemplate": "xinyun-ai-init/templates/skill-run-record.template.json",
|
|
57
|
+
"routeByTaskFacts": true,
|
|
58
|
+
"fixedRoleRouting": false
|
|
212
59
|
},
|
|
213
|
-
"
|
|
214
|
-
"
|
|
215
|
-
"
|
|
60
|
+
"coordination": {
|
|
61
|
+
"projectFacts": "xinyun-ai/coordination/project-facts.json",
|
|
62
|
+
"changeLedger": "xinyun-ai/coordination/change-ledger.json",
|
|
63
|
+
"conflictsDirectory": "xinyun-ai/coordination/conflict-records/",
|
|
64
|
+
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
65
|
+
"streamsDirectory": "xinyun-ai/coordination/streams/",
|
|
66
|
+
"cursorsDirectory": "xinyun-ai/coordination/cursors/",
|
|
67
|
+
"syncChecksDirectory": "xinyun-ai/coordination/sync-checks/",
|
|
68
|
+
"leasesDirectory": "xinyun-ai/coordination/leases/",
|
|
69
|
+
"syncTriggers": ["user-message-received", "before-plan", "before-write", "before-verification", "before-delivery"],
|
|
70
|
+
"silentWhenNoChanges": true,
|
|
71
|
+
"eventWriteMode": "per-conversation-single-writer"
|
|
72
|
+
},
|
|
73
|
+
"migration": {
|
|
74
|
+
"directory": "xinyun-ai/migrations/shared-project-conversations/",
|
|
75
|
+
"template": "xinyun-ai-init/templates/multi-conversation-migration.template.json",
|
|
76
|
+
"legacyDirectories": ["xinyun-ai/team/", "xinyun-ai/tasks/role-execution/", "xinyun-ai/sessions/roles/"],
|
|
77
|
+
"legacyMode": "read-only",
|
|
78
|
+
"deleteLegacyMaterials": false
|
|
79
|
+
},
|
|
80
|
+
"authorization": {
|
|
81
|
+
"changePlanConfirmationRequired": true,
|
|
82
|
+
"databaseAuthorizationSeparate": true,
|
|
83
|
+
"gitWriteAuthorizationSeparate": true,
|
|
84
|
+
"npmPublishAuthorizationSeparate": true
|
|
85
|
+
},
|
|
86
|
+
"codeGraph": {
|
|
87
|
+
"requiredForStructuralTasks": true,
|
|
216
88
|
"status": "unknown",
|
|
217
|
-
"statusEnum": ["initialized", "healthy", "missing", "unavailable", "permission-denied", "failed", "unknown"],
|
|
218
|
-
"command": "codegraph init -i",
|
|
219
|
-
"version": null,
|
|
220
|
-
"indexPath": ".codegraph/",
|
|
221
|
-
"sourceRevision": null,
|
|
222
|
-
"indexScope": [],
|
|
223
|
-
"unindexedScope": [],
|
|
224
|
-
"initializedAt": null,
|
|
225
|
-
"checkedAt": null,
|
|
226
89
|
"evidence": [],
|
|
227
|
-
"
|
|
228
|
-
"degradationAuthorized": false,
|
|
229
|
-
"statusSource": "xinyun-ai/manifest.json"
|
|
230
|
-
},
|
|
231
|
-
"team": {
|
|
232
|
-
"directory": "xinyun-ai/team/",
|
|
233
|
-
"roles": "xinyun-ai/team/roles.json",
|
|
234
|
-
"members": "xinyun-ai/team/members.json",
|
|
235
|
-
"assignments": "xinyun-ai/team/assignments.json",
|
|
236
|
-
"responsibilityMatrix": "xinyun-ai/team/responsibility-matrix.json",
|
|
237
|
-
"fileOwnership": "xinyun-ai/team/file-ownership.json",
|
|
238
|
-
"understandingsDirectory": "xinyun-ai/team/understandings/",
|
|
239
|
-
"confirmationsDirectory": "xinyun-ai/team/confirmations/"
|
|
240
|
-
},
|
|
241
|
-
"frameworkProfile": {
|
|
242
|
-
"directory": "xinyun-ai/frameworks/",
|
|
243
|
-
"markdown": "xinyun-ai/frameworks/framework-profile.md",
|
|
244
|
-
"json": "xinyun-ai/frameworks/framework-profile.json"
|
|
245
|
-
},
|
|
246
|
-
"htmlMigration": {
|
|
247
|
-
"directory": "xinyun-ai/migrations/html-to-client/",
|
|
248
|
-
"scope": "xinyun-ai/migrations/html-to-client/migration-scope.md",
|
|
249
|
-
"compatibilityMatrix": "xinyun-ai/migrations/html-to-client/compatibility-matrix.md",
|
|
250
|
-
"routeMap": "xinyun-ai/migrations/html-to-client/route-map.md",
|
|
251
|
-
"assetMap": "xinyun-ai/migrations/html-to-client/asset-map.md",
|
|
252
|
-
"pilotPlan": "xinyun-ai/migrations/html-to-client/pilot-plan.md",
|
|
253
|
-
"openIssues": "xinyun-ai/migrations/html-to-client/open-issues.md",
|
|
254
|
-
"recordJson": "xinyun-ai/migrations/html-to-client/migration-record.json"
|
|
255
|
-
},
|
|
256
|
-
"v19": {
|
|
257
|
-
"projectIdentity": "xinyun-ai/project-identity.json",
|
|
258
|
-
"sessionCandidates": "xinyun-ai/sessions/session-candidates.json",
|
|
259
|
-
"technicalLandscape": "xinyun-ai/technical-landscape.json",
|
|
260
|
-
"requirementPacket": "xinyun-ai/packets/requirement-packet.json",
|
|
261
|
-
"technicalImpactPacket": "xinyun-ai/packets/technical-impact-packet.json",
|
|
262
|
-
"databaseAuthorization": "xinyun-ai/database/authorization.json",
|
|
263
|
-
"packetHashAlgorithm": "RFC8785-JCS-SHA-256",
|
|
264
|
-
"databaseAccessModeDefault": "local-files-read-only",
|
|
265
|
-
"legacyDatabaseAccessMode": "sql-only",
|
|
266
|
-
"sqlExecutionMode": "generate-only",
|
|
267
|
-
"databaseLocalFilePolicy": {
|
|
268
|
-
"scope": ["*.sql", "*.ddl", "*.schema", "*.migration", "database/", "migrations/", "schema/", "models/"],
|
|
269
|
-
"readOnly": true,
|
|
270
|
-
"taskTriggeredOnly": true,
|
|
271
|
-
"connectionAllowed": false,
|
|
272
|
-
"sqlExecutionAllowed": false
|
|
273
|
-
}
|
|
274
|
-
},
|
|
275
|
-
"v110": {
|
|
276
|
-
"projectStatus": "xinyun-ai/project-status.json",
|
|
277
|
-
"preflightReport": "xinyun-ai/preflight-report.json",
|
|
278
|
-
"onboardingReport": "xinyun-ai/onboarding-report.json",
|
|
279
|
-
"hostCapabilities": "xinyun-ai/host-capabilities.json",
|
|
280
|
-
"takeoverBaseline": "xinyun-ai/index/takeover-baseline.json",
|
|
281
|
-
"controlPlaneIndex": "xinyun-ai/index/control-plane-index.json",
|
|
282
|
-
"projectStatusEnum": ["not-started", "initializing", "partial", "blocked", "ready"],
|
|
283
|
-
"requiredRoleSessionBlockedReason": "required-role-session-not-created",
|
|
284
|
-
"databaseDefault": { "authorization": "not-requested", "executionStatus": "needs-confirmation", "redactionStatus": "verified" },
|
|
285
|
-
"readyRequires": ["projectIdentity", "codeGraph", "baseline", "teamResponsibility", "roleSessions", "taskTree", "localControlPlane", "legacyHandoff", "hostCapabilities", "sensitiveScan", "noHighRiskBlocker"]
|
|
286
|
-
},
|
|
287
|
-
"v112": {
|
|
288
|
-
"status": "implemented-in-package",
|
|
289
|
-
"capability": "initializationGateRecovery",
|
|
290
|
-
"hostPreflight": "xinyun-ai/host-preflight.json",
|
|
291
|
-
"initializationRecovery": "xinyun-ai/index/initialization-recovery.json",
|
|
292
|
-
"manualSessionBindings": "xinyun-ai/sessions/manual-bindings.json",
|
|
293
|
-
"sharedProjectSnapshot": "xinyun-ai/index/shared-project-snapshot.json",
|
|
294
|
-
"initializationTiming": "xinyun-ai/index/initialization-timing.json",
|
|
295
|
-
"hostCapabilityStatusEnum": ["available", "available-with-dependency", "unavailable", "permission-denied", "unknown", "not-checked", "not-verified", "failed"],
|
|
296
|
-
"preflightRequiredCapabilities": ["createRealSession", "reuseExistingSession", "sendTask", "receiveResult", "querySessionStatus", "recoverSession", "closeSession", "controlFileReadWrite"],
|
|
297
|
-
"resumeConfirmationPhrases": ["确认执行", "确认继续初始化"],
|
|
298
|
-
"codeGraphReuseStatuses": ["healthy", "initialized"],
|
|
299
|
-
"projectSnapshotReusePolicy": "reuse-until-business-or-codegraph-hash-changes",
|
|
300
|
-
"stageTimingRequiredFields": ["stageId", "attempt", "status", "startedAt", "finishedAt", "durationMs", "cacheHit", "failureReason", "bottleneck", "recoveryAction"]
|
|
301
|
-
},
|
|
302
|
-
"v1121": {
|
|
303
|
-
"status": "implemented-in-package",
|
|
304
|
-
"capability": "providerSpecificSessionBinding",
|
|
305
|
-
"providerBindingTemplate": "xinyun-ai-init/templates/provider-session-binding.template.json",
|
|
306
|
-
"providerBindings": "xinyun-ai/sessions/provider-session-bindings.json",
|
|
307
|
-
"providerEnum": ["codex"],
|
|
308
|
-
"bindingModeEnum": ["auto-created", "auto-reused", "manual", "recovery", "local-degraded"],
|
|
309
|
-
"bindingStatusEnum": ["pending", "validating", "bound", "blocked", "rejected", "released", "conflict", "recovery-required"],
|
|
310
|
-
"identityEvidenceRequired": ["providerSessionId", "projectRootHash", "workspaceScope", "roleId", "taskId", "title", "cwd", "source", "verifiedAt", "evidenceHash"],
|
|
311
|
-
"interactionEvidenceRequired": ["sendReceipt", "receiveReceipt", "transcriptHash", "messageCount", "recordedAt", "evidenceHash"],
|
|
312
|
-
"sessionIdentityFields": ["hostThreadId", "hostSessionId", "providerSessionId", "projectSessionId", "sessionId", "orchestratorSessionId"],
|
|
313
|
-
"canonicalSessionIdentity": "providerSessionId",
|
|
314
|
-
"sessionCompatibilityAlias": "sessionId",
|
|
315
|
-
"sessionIdentityMappingRule": "sessionId equals providerSessionId only after canonical provider evidence is verified; hostThreadId and hostSessionId are evidence only",
|
|
316
|
-
"requiredHostEvidence": ["create-or-reuse", "send", "receive", "query-status", "recover", "close"],
|
|
317
|
-
"crossFileSessionConsistency": "role-session-binding, provider-session-binding, assignments, task, task-index and init-result must agree on roleId, taskId, projectRootHash, providerSessionId, sessionId, attempt and status",
|
|
318
|
-
"bindingGate": "provider canonical ID + identity evidence + interaction evidence + exclusive occupancy",
|
|
319
|
-
"unsupportedHostPolicy": "blocked-without-fake-provider-session-id"
|
|
320
|
-
},
|
|
321
|
-
"v113": {
|
|
322
|
-
"status": "implemented-in-package",
|
|
323
|
-
"capability": "hostAdapterAndManualRecovery",
|
|
324
|
-
"providerAdapter": "xinyun-ai/sessions/provider-adapter.json",
|
|
325
|
-
"manualSessionRecovery": "xinyun-ai/sessions/manual-session-recovery.json",
|
|
326
|
-
"initializationChangeReport": "xinyun-ai/index/initialization-change-report.json",
|
|
327
|
-
"preflightRequiredCapabilities": ["createRealSession", "reuseExistingSession", "sendTask", "receiveResult", "querySessionStatus", "recoverSession", "closeSession", "controlFileReadWrite"],
|
|
328
|
-
"fastBlockBeforeCodeGraph": true,
|
|
329
|
-
"sessionIdentityFields": ["hostThreadId", "hostSessionId", "providerSessionId", "projectSessionId", "sessionId", "orchestratorSessionId"],
|
|
330
|
-
"canonicalSessionIdentity": "providerSessionId",
|
|
331
|
-
"sessionCompatibilityAlias": "sessionId",
|
|
332
|
-
"sessionIdentityMappingRule": "sessionId equals providerSessionId only after canonical provider evidence is verified; hostThreadId and hostSessionId are evidence only",
|
|
333
|
-
"requiredHostEvidence": ["create-or-reuse", "send", "receive", "query-status", "recover", "close"],
|
|
334
|
-
"crossFileSessionConsistency": "role-session-binding, provider-session-binding, assignments, task, task-index and init-result must agree on roleId, taskId, projectRootHash, providerSessionId, sessionId, attempt and status",
|
|
335
|
-
"changeOriginEnum": ["initialization-created", "initialization-updated", "pre-existing-user-change", "control-plane-only"],
|
|
336
|
-
"manualRecoveryRoles": ["project-owner", "project-product", "chief-engineer", "programmer", "test-reviewer"],
|
|
337
|
-
"userDecisionEnum": ["manual-create", "defer", "redetect"],
|
|
338
|
-
"decisionStatusEnum": ["not-asked", "awaiting-user", "selected", "processing", "completed", "blocked"],
|
|
339
|
-
"decisionRequiredFields": ["decisionId", "userDecision", "actor", "source", "requiredRoleCount", "createdRoleCount", "remainingRoleIds", "decisionStatus", "decidedAt", "nextAction", "decisionEvidence"],
|
|
340
|
-
"decisionEvidenceFields": ["decisionId", "userDecision", "actor", "source", "decidedAt", "inputHash", "evidenceHash"],
|
|
341
|
-
"sessionCreationDecisionEnum": ["create-and-onboard", "defer"],
|
|
342
|
-
"sessionCreationStatusEnum": ["not-asked", "awaiting-confirmation", "approved", "deferred", "processing", "completed", "blocked"],
|
|
343
|
-
"sessionCreationDecisionRequiredFields": ["decision", "decisionId", "status", "actor", "source", "decidedAt", "decisionEvidence", "nextAction"],
|
|
344
|
-
"taskFirstSessionGate": "create main task and five role tasks first; ask user before creating or completing role sessions",
|
|
345
|
-
"manualBindingConfirmationPhrase": "已创建,继续绑定",
|
|
346
|
-
"noChoicePolicy": "remain-blocked-without-repeat-prompt"
|
|
347
|
-
},
|
|
348
|
-
"v114": {
|
|
349
|
-
"status": "implemented-in-package",
|
|
350
|
-
"capability": "agentCoreAndTakeoverControl",
|
|
351
|
-
"agentProfile": "xinyun-ai/agent-profile.json",
|
|
352
|
-
"agentCapabilities": "xinyun-ai/agent-capabilities.json",
|
|
353
|
-
"takeoverGate": "xinyun-ai/takeover-gate.json",
|
|
354
|
-
"orchestrator": "xinyun-ai/tasks/orchestrator.json",
|
|
355
|
-
"taskGraph": "xinyun-ai/tasks/task-graph.json",
|
|
356
|
-
"handoffsDirectory": "xinyun-ai/handoffs/",
|
|
357
|
-
"finalDelivery": "xinyun-ai/final-delivery.json",
|
|
358
|
-
"agentStatusEnum": ["ready", "partial", "blocked", "manual-required"],
|
|
359
|
-
"takeoverStatusEnum": ["not-started", "assessing", "partial", "blocked", "manual-required", "ready"],
|
|
360
|
-
"taskStatusCodeEnum": ["captured", "pending", "executing", "waiting-review", "awaiting-confirmation", "completed", "blocked", "cancelled"],
|
|
361
|
-
"taskStatusLabelMap": {"captured": "待分析", "pending": "待分配", "executing": "执行中", "waiting-review": "待审查", "awaiting-confirmation": "待确认", "completed": "已完成", "blocked": "阻塞", "cancelled": "已取消"},
|
|
362
|
-
"readyRequires": ["controlPlane", "mainTask", "roleTasks", "teamResponsibility", "codeGraph", "roleSessions", "orchestrator", "recovery", "indexes", "sharedFacts", "conflicts", "sensitiveScan"]
|
|
363
|
-
},
|
|
364
|
-
"v115": {
|
|
365
|
-
"status": "released",
|
|
366
|
-
"sessionBindingTemplate": "xinyun-ai-init/templates/session-binding.template.json",
|
|
367
|
-
"sessionBindingPath": "xinyun-ai/sessions/session-bindings.json",
|
|
368
|
-
"sessionIdentityMode": "adapter-neutral",
|
|
369
|
-
"sessionIdentityFields": ["sessionId", "sessionRefType", "sessionRef", "hostId", "provider", "projectRootHash", "workspaceScope", "repositoryScope", "workstream", "roleId", "taskId", "title", "cwd", "identityEvidence", "interactionEvidence", "bindingStatus", "bindingMode", "createdAt", "updatedAt"],
|
|
370
|
-
"sessionRefTypeEnum": ["host-thread", "provider-session", "manual-reference", "local-session"],
|
|
371
|
-
"requiredEvidenceCategories": ["create-or-reuse", "send", "receive", "query-status", "recover", "close", "control-file-read-write"],
|
|
372
|
-
"canonicalControlPlaneId": "sessionId",
|
|
373
|
-
"providerSessionIdPolicy": "compatibility-only; not the sole identity or ready gate",
|
|
374
|
-
"batchStatus": {"v1.15-A": "released", "v1.15-B": "released", "v1.15-C": "released"}
|
|
375
|
-
},
|
|
376
|
-
"v116": {
|
|
377
|
-
"status": "candidate",
|
|
378
|
-
"capability": "skill-routing-incremental-index-efficiency",
|
|
379
|
-
"skillRoute": "xinyun-ai/skills/runtime-routes.json",
|
|
380
|
-
"skillRunRecords": "xinyun-ai/skills/runs/",
|
|
381
|
-
"incrementalCodeGraph": "xinyun-ai/index/codegraph-incremental.json",
|
|
382
|
-
"localQueryIndex": "xinyun-ai/index/local-query-index.json",
|
|
383
|
-
"performanceMetrics": "xinyun-ai/index/performance-metrics.json",
|
|
384
|
-
"statusEnum": ["candidate", "partial", "blocked", "ready"],
|
|
385
|
-
"batchStatus": {"v1.16-A": "candidate", "v1.16-B": "candidate", "v1.16-C": "candidate"},
|
|
386
|
-
"providerSessionIdPolicy": "compatibility-only; adapter-neutral session binding remains authoritative"
|
|
90
|
+
"unverifiedScope": []
|
|
387
91
|
},
|
|
388
|
-
"
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
"fixedMaterialization": "xinyun-ai/fixed-materialization.json",
|
|
392
|
-
"initializationStages": "xinyun-ai/initialization-stages.json",
|
|
393
|
-
"bootstrapSnapshot": "xinyun-ai/bootstrap-snapshot.json",
|
|
394
|
-
"initializationCache": "xinyun-ai/index/initialization-cache.json",
|
|
395
|
-
"parallelism": "xinyun-ai/sessions/parallelism.json",
|
|
396
|
-
"stageStatusEnum": ["pending", "running", "completed", "skipped", "partial", "blocked", "recovery-required"],
|
|
397
|
-
"projectStatusEnum": ["initializing", "partial", "blocked", "ready"],
|
|
398
|
-
"defaultRoleConcurrency": 3,
|
|
399
|
-
"cacheTtlHours": 24,
|
|
400
|
-
"cacheKeyAlgorithm": "RFC8785-JCS-SHA-256"
|
|
401
|
-
}
|
|
92
|
+
"projectStatus": "not-started",
|
|
93
|
+
"executionEligible": false,
|
|
94
|
+
"lastUpdatedAt": null
|
|
402
95
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"migrationId": null,
|
|
4
|
+
"executionModelFrom": null,
|
|
5
|
+
"executionModelTo": "shared-project-multi-conversation-runtime",
|
|
6
|
+
"phase": "not-started",
|
|
7
|
+
"phaseEnum": ["not-started", "inventory", "prepared", "converting", "validating", "committed", "partial", "blocked", "recovery-required", "manual-required"],
|
|
8
|
+
"projectContextId": null,
|
|
9
|
+
"idempotencyKey": null,
|
|
10
|
+
"beforeHash": null,
|
|
11
|
+
"afterHash": null,
|
|
12
|
+
"legacyInventory": [],
|
|
13
|
+
"preservedReadOnlyPaths": [],
|
|
14
|
+
"convertedTaskIds": [],
|
|
15
|
+
"createdConversationBindingIds": [],
|
|
16
|
+
"createdStreamIds": [],
|
|
17
|
+
"cursorInitialization": {},
|
|
18
|
+
"rollbackPaths": [],
|
|
19
|
+
"conflicts": [],
|
|
20
|
+
"evidence": [],
|
|
21
|
+
"startedAt": null,
|
|
22
|
+
"updatedAt": null,
|
|
23
|
+
"completedAt": null
|
|
24
|
+
}
|
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion":
|
|
3
|
-
"
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"executionModel": "shared-project-multi-conversation-runtime",
|
|
4
4
|
"projectRootHash": null,
|
|
5
|
-
"
|
|
6
|
-
"projectStatus": "not-started",
|
|
5
|
+
"status": "partial",
|
|
7
6
|
"executionEligible": false,
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"evidence": [],
|
|
7
|
+
"contextStatus": "unknown",
|
|
8
|
+
"understandingStatus": "unknown",
|
|
9
|
+
"reTakeover": {
|
|
10
|
+
"recordPath": "xinyun-ai/index/re-takeover-record.json",
|
|
11
|
+
"snapshotPath": "xinyun-ai/index/bootstrap-snapshot.json",
|
|
12
|
+
"status": "not-started",
|
|
13
|
+
"takeoverId": null,
|
|
14
|
+
"evidence": []
|
|
15
|
+
},
|
|
16
|
+
"projectIdentity": {"status": "pending", "evidence": []},
|
|
17
|
+
"projectContext": {"status": "pending", "path": "xinyun-ai/project-context.json", "evidence": []},
|
|
18
|
+
"conversationBinding": {"status": "pending", "registryPath": "xinyun-ai/conversations/registry.json", "evidence": []},
|
|
19
|
+
"incrementalSync": {"status": "pending", "cursorPath": null, "evidence": []},
|
|
20
|
+
"taskControlPlane": {"status": "pending", "taskIndex": "xinyun-ai/tasks/task-index.json", "taskGraph": "xinyun-ai/tasks/task-graph.json", "evidence": []},
|
|
21
|
+
"skillRuntime": {"status": "pending", "registry": "xinyun-ai/skills/registry.json", "evidence": []},
|
|
22
|
+
"legacyMigration": {"status": "not-required", "inventoryPath": null, "evidence": []},
|
|
23
|
+
"authorization": {"changePlan": "required", "database": "not-requested", "gitWrite": "not-requested", "npmPublish": "not-requested"},
|
|
24
|
+
"requiredGates": [],
|
|
21
25
|
"blockedReasons": [],
|
|
22
26
|
"unverifiedScope": [],
|
|
27
|
+
"evidence": [],
|
|
23
28
|
"createdAt": null,
|
|
24
29
|
"updatedAt": null
|
|
25
30
|
}
|