@t275005746/gse 0.1.0 → 0.1.2
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/.github/ISSUE_TEMPLATE/bug_report.yml +42 -42
- package/.github/ISSUE_TEMPLATE/change_request.yml +50 -50
- package/.github/ISSUE_TEMPLATE/config.yml +5 -5
- package/.github/PULL_REQUEST_TEMPLATE.md +38 -38
- package/.github/workflows/validate-gse.yml +33 -33
- package/.gse/README.md +18 -18
- package/.gse/gse-development-protocol.md +50 -50
- package/.gse/project-profile.md +29 -29
- package/.gse/quality-gates.md +25 -25
- package/.gse/releases/public-registry-publication-npm.md +49 -0
- package/.gse/releases/public-release-owner-required.md +65 -65
- package/.gse/releases/public-security-contact-owner-required.md +45 -45
- package/.gse/state.json +147 -27
- package/CHANGELOG.md +31 -15
- package/CONTRIBUTING.md +64 -64
- package/LICENSE +21 -21
- package/README.md +14 -7
- package/README.zh-CN.md +14 -7
- package/SECURITY.md +41 -41
- package/SKILL.md +32 -12
- package/SUPPORT.md +38 -38
- package/assets/marketplace/README.md +7 -7
- package/assets/marketplace/gse-listing.json +75 -75
- package/assets/templates/acceptance-execution-packet.md +73 -73
- package/assets/templates/adr.md +14 -14
- package/assets/templates/change-brief.md +16 -16
- package/assets/templates/design.md +18 -18
- package/assets/templates/dispatch-packet.md +100 -92
- package/assets/templates/evidence.md +15 -9
- package/assets/templates/execution-quality-pack.md +65 -65
- package/assets/templates/goal-map.md +21 -21
- package/assets/templates/host-adapter.md +48 -48
- package/assets/templates/host-ui-invocation-record.md +42 -42
- package/assets/templates/incident-review.md +60 -60
- package/assets/templates/public-channel-publication-record.md +49 -49
- package/assets/templates/public-ci-run-record.md +53 -53
- package/assets/templates/public-release-record.md +65 -65
- package/assets/templates/public-repository-settings-record.md +59 -59
- package/assets/templates/public-security-contact-record.md +45 -45
- package/assets/templates/release-trust-record.md +32 -32
- package/assets/templates/review.md +18 -18
- package/assets/templates/role-fallback-packet.md +49 -0
- package/assets/templates/spec.md +16 -16
- package/assets/templates/target-adoption-evidence.md +29 -29
- package/assets/templates/tasks.md +17 -17
- package/assets/templates/update-release-acceptance-record.md +58 -58
- package/examples/README.md +22 -22
- package/examples/agent-runtime-host/.claude/gse-adapter.md +6 -6
- package/examples/agent-runtime-host/.codex/gse-adapter.md +7 -7
- package/examples/agent-runtime-host/.gse/goal-map.md +7 -7
- package/examples/agent-runtime-host/.gse/project-profile.md +27 -27
- package/examples/agent-runtime-host/.gse/tooling.md +5 -5
- package/examples/agent-runtime-host/.mcp.json +9 -9
- package/examples/agent-runtime-host/AGENTS.md +5 -5
- package/examples/agent-runtime-host/README.md +10 -10
- package/examples/agent-runtime-host/docs/model-routing.md +5 -5
- package/examples/cli-tool/.gse/project-profile.md +21 -21
- package/examples/cli-tool/AGENTS.md +5 -5
- package/examples/cli-tool/README.md +12 -12
- package/examples/cli-tool/package.json +21 -21
- package/examples/small-app/.env.example +2 -2
- package/examples/small-app/.github/workflows/ci.yml +8 -8
- package/examples/small-app/AGENTS.md +5 -5
- package/examples/small-app/README.md +12 -12
- package/examples/small-app/package.json +26 -26
- package/examples/small-app/playwright.config.ts +4 -4
- package/package.json +52 -44
- package/references/adoption-recipes.md +171 -171
- package/references/agent-roles.md +42 -21
- package/references/architecture-health.md +101 -101
- package/references/benchmark-audit.md +73 -73
- package/references/commands.md +74 -45
- package/references/community-channels.md +46 -46
- package/references/compatibility.md +70 -70
- package/references/design-basis.md +38 -38
- package/references/domain-model.md +129 -129
- package/references/domain-quality-gates.md +75 -75
- package/references/drift-audit.md +81 -80
- package/references/evidence-taxonomy.md +145 -108
- package/references/file-ownership.md +97 -93
- package/references/final-form-roadmap.md +201 -0
- package/references/final-readiness.md +84 -84
- package/references/forward-test.md +133 -133
- package/references/goal-map.md +36 -36
- package/references/host-adapters.md +129 -101
- package/references/learning-system.md +42 -26
- package/references/maintenance-cadence.md +51 -0
- package/references/marketplace-discovery.md +46 -46
- package/references/model-routing.md +103 -103
- package/references/open-source-defaults.md +39 -39
- package/references/operating-model.md +52 -52
- package/references/packaging.md +277 -277
- package/references/project-agent-workspace.md +89 -89
- package/references/project-bootstrap.md +122 -122
- package/references/project-guards.md +52 -0
- package/references/project-profile.md +57 -57
- package/references/public-release.md +174 -174
- package/references/quality-gates.md +96 -89
- package/references/recovery.md +176 -176
- package/references/release-trust.md +43 -43
- package/references/release.md +126 -126
- package/references/review.md +141 -141
- package/references/role-dispatch-fallback.md +54 -0
- package/references/router.md +90 -90
- package/references/spec-workflow.md +66 -66
- package/references/task-levels.md +81 -81
- package/references/tool-adapters.md +80 -70
- package/scripts/audit-acceptance-execution-packet.mjs +133 -133
- package/scripts/audit-adoption-recipes.mjs +99 -99
- package/scripts/audit-change-lifecycle.mjs +77 -77
- package/scripts/audit-change-system.mjs +134 -134
- package/scripts/audit-ci-readiness.mjs +107 -107
- package/scripts/audit-close-gate-hardening.mjs +188 -0
- package/scripts/audit-close-gate.mjs +448 -262
- package/scripts/audit-command-adapters.mjs +91 -91
- package/scripts/audit-command-execution.mjs +212 -199
- package/scripts/audit-commands.mjs +7 -5
- package/scripts/audit-compatibility.mjs +149 -149
- package/scripts/audit-completion-plan-drill.mjs +230 -0
- package/scripts/audit-completion-readiness.mjs +290 -287
- package/scripts/audit-continue-preflight.mjs +234 -0
- package/scripts/audit-distribution.mjs +251 -251
- package/scripts/audit-domain-quality-gates.mjs +108 -108
- package/scripts/audit-evidence-levels.mjs +217 -0
- package/scripts/audit-evidence-placeholders.mjs +126 -126
- package/scripts/audit-evidence-review-queue.mjs +206 -0
- package/scripts/audit-final-acceptance-packet.mjs +9 -9
- package/scripts/audit-final-form-progress-report.mjs +19 -18
- package/scripts/audit-final-form-roadmap.mjs +157 -0
- package/scripts/audit-final-form-stale-copy.mjs +2 -2
- package/scripts/audit-final-readiness-promotion.mjs +255 -255
- package/scripts/audit-final-readiness.mjs +226 -226
- package/scripts/audit-fixtures.mjs +154 -154
- package/scripts/audit-fresh-session-readiness.mjs +177 -177
- package/scripts/audit-host-capabilities.mjs +237 -0
- package/scripts/audit-host-runtime-evidence-handoff.mjs +159 -159
- package/scripts/audit-host-runtime-invocation-drill.mjs +240 -240
- package/scripts/audit-host-runtime-invocations.mjs +254 -254
- package/scripts/audit-host-ui-invocation.mjs +132 -132
- package/scripts/audit-installed-sync.mjs +203 -0
- package/scripts/audit-learning-drift.mjs +292 -0
- package/scripts/audit-learning-promotion.mjs +351 -0
- package/scripts/audit-learning-system.mjs +24 -14
- package/scripts/audit-local-final-form-completion.mjs +11 -10
- package/scripts/audit-maintenance-cadence.mjs +139 -0
- package/scripts/audit-maintenance-snapshot.mjs +181 -0
- package/scripts/audit-marketplace-discovery.mjs +122 -122
- package/scripts/audit-npm-package-metadata.mjs +160 -154
- package/scripts/audit-npm-publish-dry-run.mjs +194 -166
- package/scripts/audit-npm-tarball-install.mjs +195 -189
- package/scripts/audit-open-source-defaults.mjs +92 -92
- package/scripts/audit-open-source-readiness.mjs +97 -97
- package/scripts/audit-owner-external-gate-kit.mjs +12 -11
- package/scripts/audit-project-guards.mjs +189 -0
- package/scripts/audit-project.mjs +144 -141
- package/scripts/audit-public-acceptance-command-dry-run-drill.mjs +203 -203
- package/scripts/audit-public-acceptance-handoff.mjs +10 -10
- package/scripts/audit-public-acceptance-readiness.mjs +222 -222
- package/scripts/audit-public-channel-publication.mjs +248 -248
- package/scripts/audit-public-ci-run.mjs +184 -184
- package/scripts/audit-public-collaboration-templates.mjs +98 -98
- package/scripts/audit-public-external-gate-probe.mjs +206 -206
- package/scripts/audit-public-release-checklist.mjs +17 -15
- package/scripts/audit-public-release-decision.mjs +201 -201
- package/scripts/audit-public-release-metadata.mjs +176 -176
- package/scripts/audit-public-repository-settings.mjs +237 -237
- package/scripts/audit-public-security-contact.mjs +171 -171
- package/scripts/audit-readme-docs.mjs +6 -4
- package/scripts/audit-recovery-readiness.mjs +98 -98
- package/scripts/audit-release-bundle.mjs +13 -11
- package/scripts/audit-release-owner-action-plan-drill.mjs +5 -4
- package/scripts/audit-release-owner-action-plan.mjs +10 -10
- package/scripts/audit-release-readiness.mjs +106 -106
- package/scripts/audit-release-status-manifest.mjs +4 -4
- package/scripts/audit-release-trust.mjs +62 -62
- package/scripts/audit-remote-distribution.mjs +266 -266
- package/scripts/audit-roadmap-consistency.mjs +234 -230
- package/scripts/audit-role-dispatch-fallback.mjs +212 -0
- package/scripts/audit-session-sync.mjs +127 -0
- package/scripts/audit-signing.mjs +147 -147
- package/scripts/audit-state-freshness.mjs +20 -14
- package/scripts/audit-state-repair.mjs +360 -0
- package/scripts/audit-target-adoption-evidence.mjs +117 -117
- package/scripts/audit-target-hardening-drills.mjs +267 -0
- package/scripts/audit-target-project.mjs +507 -507
- package/scripts/audit-tool-fallback-policy.mjs +180 -0
- package/scripts/audit-ui-browser-evidence-policy.mjs +191 -0
- package/scripts/audit-update-release-acceptance.mjs +136 -136
- package/scripts/audit-v1-target-validation.mjs +269 -269
- package/scripts/audit-validation-profiles.mjs +125 -123
- package/scripts/backfill-evidence-levels.mjs +98 -0
- package/scripts/check-encoding.mjs +72 -0
- package/scripts/close-change.mjs +116 -116
- package/scripts/discover-project-profile.mjs +307 -307
- package/scripts/generate-command-adapter.mjs +231 -231
- package/scripts/generate-continue-packet.mjs +1214 -0
- package/scripts/generate-final-acceptance-packet.mjs +188 -173
- package/scripts/generate-final-form-progress-report.mjs +191 -189
- package/scripts/generate-host-runtime-evidence-handoff.mjs +198 -191
- package/scripts/generate-maintenance-snapshot.mjs +216 -0
- package/scripts/generate-owner-external-gate-kit.mjs +295 -295
- package/scripts/generate-public-acceptance-handoff.mjs +168 -156
- package/scripts/generate-public-release-checklist.mjs +207 -207
- package/scripts/generate-release-bundle.mjs +505 -505
- package/scripts/generate-release-owner-action-plan.mjs +172 -171
- package/scripts/generate-release-status-manifest.mjs +199 -198
- package/scripts/generate-session-prompt.mjs +188 -188
- package/scripts/gse.mjs +67 -67
- package/scripts/init-change.mjs +265 -265
- package/scripts/init-project.mjs +793 -712
- package/scripts/install-gse.mjs +234 -234
- package/scripts/lib/evidence-placeholders.mjs +28 -28
- package/scripts/package-gse.mjs +174 -174
- package/scripts/probe-public-external-gates.mjs +167 -167
- package/scripts/record-host-invocation.mjs +151 -151
- package/scripts/record-learning.mjs +37 -8
- package/scripts/record-public-channel-publication.mjs +178 -178
- package/scripts/record-public-ci-run.mjs +180 -180
- package/scripts/record-public-release.mjs +175 -175
- package/scripts/record-public-repository-settings.mjs +209 -209
- package/scripts/record-public-security-contact.mjs +157 -157
- package/scripts/record-session-sync.mjs +87 -0
- package/scripts/run-gse-command.mjs +79 -47
- package/scripts/run-validation-profile.mjs +24 -5
- package/scripts/sign-gse-package.mjs +83 -83
- package/scripts/update-project-state.mjs +223 -223
- package/scripts/validate-gse.mjs +216 -0
- package/scripts/verify-gse-package.mjs +85 -85
|
@@ -1,200 +1,201 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import fs from 'node:fs'
|
|
3
|
-
import path from 'node:path'
|
|
4
|
-
import { spawnSync } from 'node:child_process'
|
|
5
|
-
|
|
6
|
-
const args = process.argv.slice(2)
|
|
7
|
-
|
|
8
|
-
function readArg(name, fallback = null) {
|
|
9
|
-
const index = args.indexOf(name)
|
|
10
|
-
if (index === -1) return fallback
|
|
11
|
-
return args[index + 1] ?? fallback
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function hasArg(name) {
|
|
15
|
-
return args.includes(name)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const root = path.resolve(readArg('--root', path.join(import.meta.dirname, '..')))
|
|
19
|
-
const out = path.resolve(readArg('--out', path.join(root, '.gse', 'acceptance', 'release-status-manifest.json')))
|
|
20
|
-
const displayRoot = readArg('--display-root', '<gse-root>')
|
|
21
|
-
const jsonOnly = hasArg('--json')
|
|
22
|
-
const dryRun = hasArg('--dry-run')
|
|
23
|
-
const force = hasArg('--force')
|
|
24
|
-
|
|
25
|
-
function run(command, commandArgs) {
|
|
26
|
-
const result = spawnSync(command, commandArgs, {
|
|
27
|
-
cwd: root,
|
|
28
|
-
encoding: 'utf8',
|
|
29
|
-
windowsHide: true,
|
|
30
|
-
})
|
|
31
|
-
return {
|
|
32
|
-
status: result.status ?? 1,
|
|
33
|
-
stdout: (result.stdout ?? '').trim(),
|
|
34
|
-
stderr: (result.stderr ?? '').trim(),
|
|
35
|
-
command: [command, ...commandArgs].join(' '),
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function parseJson(result, label) {
|
|
40
|
-
if (result.status !== 0) {
|
|
41
|
-
throw new Error(`${label} failed: ${result.stderr || result.stdout}`)
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
return JSON.parse(result.stdout)
|
|
45
|
-
} catch (error) {
|
|
46
|
-
throw new Error(`${label} returned invalid JSON: ${error.message}`)
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function audit(scriptName) {
|
|
51
|
-
const result = run(process.execPath, [path.join(root, 'scripts', scriptName), '--root', root, '--json'])
|
|
52
|
-
return { result, data: parseJson(result, scriptName) }
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function compactRows(rows, status) {
|
|
56
|
-
return rows
|
|
57
|
-
.filter((row) => row.status === status)
|
|
58
|
-
.map((row) => ({ area: row.area, status: row.status, evidence: row.evidence }))
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function workflowStatus(data, key, fallback = 'unknown') {
|
|
62
|
-
return data.workflows?.[key] ?? data.summary?.[key] ?? fallback
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
let manifest
|
|
66
|
-
try {
|
|
67
|
-
const finalReadiness = audit('audit-final-readiness.mjs')
|
|
68
|
-
const publicAcceptance = audit('audit-public-acceptance-readiness.mjs')
|
|
69
|
-
const hostRuntime = audit('audit-host-runtime-invocations.mjs')
|
|
70
|
-
const hostRuntimeDrill = audit('audit-host-runtime-invocation-drill.mjs')
|
|
71
|
-
|
|
72
|
-
const matrix = finalReadiness.data.matrix ?? []
|
|
73
|
-
const statusFor = (area) => matrix.find((row) => row.area === area)?.status ?? 'unknown'
|
|
74
|
-
manifest = {
|
|
75
|
-
schemaVersion: 1,
|
|
76
|
-
name: 'gse',
|
|
77
|
-
displayName: 'GSE',
|
|
78
|
-
generatedAt: new Date().toISOString(),
|
|
79
|
-
root: displayRoot,
|
|
80
|
-
claimBoundary: {
|
|
81
|
-
publicAccepted: workflowStatus(finalReadiness.data, 'publicAccepted'),
|
|
82
|
-
finalReadinessMatrix: workflowStatus(finalReadiness.data, 'finalReadinessMatrix'),
|
|
83
|
-
localValidationDoesNotMeanPublicAcceptance: true,
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs'
|
|
3
|
+
import path from 'node:path'
|
|
4
|
+
import { spawnSync } from 'node:child_process'
|
|
5
|
+
|
|
6
|
+
const args = process.argv.slice(2)
|
|
7
|
+
|
|
8
|
+
function readArg(name, fallback = null) {
|
|
9
|
+
const index = args.indexOf(name)
|
|
10
|
+
if (index === -1) return fallback
|
|
11
|
+
return args[index + 1] ?? fallback
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function hasArg(name) {
|
|
15
|
+
return args.includes(name)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const root = path.resolve(readArg('--root', path.join(import.meta.dirname, '..')))
|
|
19
|
+
const out = path.resolve(readArg('--out', path.join(root, '.gse', 'acceptance', 'release-status-manifest.json')))
|
|
20
|
+
const displayRoot = readArg('--display-root', '<gse-root>')
|
|
21
|
+
const jsonOnly = hasArg('--json')
|
|
22
|
+
const dryRun = hasArg('--dry-run')
|
|
23
|
+
const force = hasArg('--force')
|
|
24
|
+
|
|
25
|
+
function run(command, commandArgs) {
|
|
26
|
+
const result = spawnSync(command, commandArgs, {
|
|
27
|
+
cwd: root,
|
|
28
|
+
encoding: 'utf8',
|
|
29
|
+
windowsHide: true,
|
|
30
|
+
})
|
|
31
|
+
return {
|
|
32
|
+
status: result.status ?? 1,
|
|
33
|
+
stdout: (result.stdout ?? '').trim(),
|
|
34
|
+
stderr: (result.stderr ?? '').trim(),
|
|
35
|
+
command: [command, ...commandArgs].join(' '),
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function parseJson(result, label) {
|
|
40
|
+
if (result.status !== 0) {
|
|
41
|
+
throw new Error(`${label} failed: ${result.stderr || result.stdout}`)
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
return JSON.parse(result.stdout)
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw new Error(`${label} returned invalid JSON: ${error.message}`)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function audit(scriptName) {
|
|
51
|
+
const result = run(process.execPath, [path.join(root, 'scripts', scriptName), '--root', root, '--json'])
|
|
52
|
+
return { result, data: parseJson(result, scriptName) }
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function compactRows(rows, status) {
|
|
56
|
+
return rows
|
|
57
|
+
.filter((row) => row.status === status)
|
|
58
|
+
.map((row) => ({ area: row.area, status: row.status, evidence: row.evidence }))
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function workflowStatus(data, key, fallback = 'unknown') {
|
|
62
|
+
return data.workflows?.[key] ?? data.summary?.[key] ?? fallback
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
let manifest
|
|
66
|
+
try {
|
|
67
|
+
const finalReadiness = audit('audit-final-readiness.mjs')
|
|
68
|
+
const publicAcceptance = audit('audit-public-acceptance-readiness.mjs')
|
|
69
|
+
const hostRuntime = audit('audit-host-runtime-invocations.mjs')
|
|
70
|
+
const hostRuntimeDrill = audit('audit-host-runtime-invocation-drill.mjs')
|
|
71
|
+
|
|
72
|
+
const matrix = finalReadiness.data.matrix ?? []
|
|
73
|
+
const statusFor = (area) => matrix.find((row) => row.area === area)?.status ?? 'unknown'
|
|
74
|
+
manifest = {
|
|
75
|
+
schemaVersion: 1,
|
|
76
|
+
name: 'gse',
|
|
77
|
+
displayName: 'GSE',
|
|
78
|
+
generatedAt: new Date().toISOString(),
|
|
79
|
+
root: displayRoot,
|
|
80
|
+
claimBoundary: {
|
|
81
|
+
publicAccepted: workflowStatus(finalReadiness.data, 'publicAccepted'),
|
|
82
|
+
finalReadinessMatrix: workflowStatus(finalReadiness.data, 'finalReadinessMatrix'),
|
|
83
|
+
localValidationDoesNotMeanPublicAcceptance: true,
|
|
84
84
|
nativeSlashCommandRequiresHostRecord: true,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'
|
|
109
|
-
'public-
|
|
110
|
-
'
|
|
111
|
-
'
|
|
112
|
-
'release-
|
|
113
|
-
'
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
'node scripts/
|
|
146
|
-
'node scripts/audit-
|
|
147
|
-
'node scripts/audit-public-acceptance-
|
|
148
|
-
'node scripts/audit-
|
|
149
|
-
'node scripts/audit-host-runtime-
|
|
150
|
-
'node scripts/audit-
|
|
151
|
-
'node scripts/audit-release-
|
|
152
|
-
'node scripts/audit-
|
|
153
|
-
'node scripts/audit-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
'
|
|
85
|
+
nativeSlashCommandIsOptionalAdapterClaim: true,
|
|
86
|
+
},
|
|
87
|
+
readiness: {
|
|
88
|
+
verified: compactRows(matrix, 'verified'),
|
|
89
|
+
ownerRequired: compactRows(matrix, 'owner-required'),
|
|
90
|
+
externalRequired: compactRows(matrix, 'external-required'),
|
|
91
|
+
notClaimed: compactRows(matrix, 'not-claimed'),
|
|
92
|
+
},
|
|
93
|
+
distribution: {
|
|
94
|
+
localPackage: statusFor('Local install'),
|
|
95
|
+
localInstall: statusFor('Local install'),
|
|
96
|
+
installedValidation: statusFor('Local install'),
|
|
97
|
+
localInstalledCli: statusFor('Local install'),
|
|
98
|
+
remoteInstall: statusFor('URL install'),
|
|
99
|
+
remoteInstalledValidation: statusFor('URL install'),
|
|
100
|
+
remoteInstalledCli: statusFor('URL install'),
|
|
101
|
+
integrityGate: statusFor('URL install'),
|
|
102
|
+
packageSigning: statusFor('Signing'),
|
|
103
|
+
signatureVerification: statusFor('Signing'),
|
|
104
|
+
releaseBundle: 'verified-after-bundle-audit',
|
|
105
|
+
bundleFiles: [
|
|
106
|
+
'release-summary.md',
|
|
107
|
+
'install-commands.md',
|
|
108
|
+
'validation-checklist.md',
|
|
109
|
+
'public-release-record.md',
|
|
110
|
+
'public-acceptance-handoff.md',
|
|
111
|
+
'host-runtime-evidence-handoff.md',
|
|
112
|
+
'release-status-manifest.json',
|
|
113
|
+
'release-owner-action-plan.md',
|
|
114
|
+
'bundle-manifest.json',
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
publicAcceptance: {
|
|
118
|
+
doctor: workflowStatus(publicAcceptance.data, 'publicAcceptanceDoctor'),
|
|
119
|
+
publicAccepted: publicAcceptance.data.summary?.publicAccepted ?? 'unknown',
|
|
120
|
+
pendingGates: publicAcceptance.data.pendingGates ?? [],
|
|
121
|
+
nextCommands: publicAcceptance.data.nextCommands ?? [],
|
|
122
|
+
nextPreflightCommands: publicAcceptance.data.nextPreflightCommands ?? [],
|
|
123
|
+
},
|
|
124
|
+
hostRuntime: {
|
|
125
|
+
recordMechanics: workflowStatus(hostRuntime.data, 'hostRuntimeInvocationRecords'),
|
|
126
|
+
records: hostRuntime.data.inventory?.records ?? 0,
|
|
127
|
+
closeableRecords: hostRuntime.data.inventory?.closeableRecords ?? 0,
|
|
128
|
+
hosts: hostRuntime.data.inventory?.hosts ?? [],
|
|
129
|
+
nativeSlashCommandRecords: hostRuntime.data.inventory?.nativeSlashCommandRecords ?? 0,
|
|
130
|
+
portableTextCommandRecords: hostRuntime.data.inventory?.portableTextCommandRecords ?? 0,
|
|
131
|
+
fixtureDrill: workflowStatus(hostRuntimeDrill.data, 'hostRuntimeInvocationDrill'),
|
|
132
|
+
fixtureNativeSlashCommandRecords: hostRuntimeDrill.data.workflows?.fixtureNativeSlashCommandRecords ?? 0,
|
|
133
|
+
fixturePortableTextCommandRecords: hostRuntimeDrill.data.workflows?.fixturePortableTextCommandRecords ?? 0,
|
|
134
|
+
fixtureEvidenceIsPersistent: false,
|
|
135
|
+
},
|
|
136
|
+
artifacts: {
|
|
137
|
+
releaseBundle: '.gse/release-bundles/gse-release-bundle-audit/',
|
|
138
|
+
finalAcceptancePacket: '.gse/acceptance/final-acceptance-packet.md',
|
|
139
|
+
publicAcceptanceHandoff: '.gse/acceptance/public-acceptance-handoff.md',
|
|
140
|
+
hostRuntimeEvidenceHandoff: '.gse/acceptance/host-runtime-evidence-handoff.md',
|
|
141
|
+
releaseStatusManifest: '.gse/acceptance/release-status-manifest.json',
|
|
142
|
+
releaseOwnerActionPlan: '.gse/acceptance/release-owner-action-plan.md',
|
|
143
|
+
},
|
|
144
|
+
verificationCommands: [
|
|
145
|
+
'node scripts/validate-gse.mjs --root __GSE__ --json',
|
|
146
|
+
'node scripts/audit-final-readiness.mjs --root __GSE__ --json',
|
|
147
|
+
'node scripts/audit-public-acceptance-readiness.mjs --root __GSE__ --json',
|
|
148
|
+
'node scripts/audit-public-acceptance-command-dry-run-drill.mjs --root __GSE__ --json',
|
|
149
|
+
'node scripts/audit-host-runtime-invocations.mjs --root __GSE__ --json',
|
|
150
|
+
'node scripts/audit-host-runtime-invocation-drill.mjs --root __GSE__ --json',
|
|
151
|
+
'node scripts/audit-release-bundle.mjs --root __GSE__ --json',
|
|
152
|
+
'node scripts/audit-release-owner-action-plan.mjs --root __GSE__ --json',
|
|
153
|
+
'node scripts/audit-distribution.mjs --root __GSE__ --json',
|
|
154
|
+
'node scripts/audit-remote-distribution.mjs --root __GSE__ --json',
|
|
155
|
+
],
|
|
156
|
+
sourceAudits: {
|
|
157
|
+
finalReadiness: 'node scripts/audit-final-readiness.mjs --root __GSE__ --json',
|
|
158
|
+
publicAcceptance: 'node scripts/audit-public-acceptance-readiness.mjs --root __GSE__ --json',
|
|
159
|
+
hostRuntime: 'node scripts/audit-host-runtime-invocations.mjs --root __GSE__ --json',
|
|
160
|
+
hostRuntimeDrill: 'node scripts/audit-host-runtime-invocation-drill.mjs --root __GSE__ --json',
|
|
161
|
+
},
|
|
162
|
+
limits: [
|
|
163
|
+
'This manifest is generated from local audits and evidence records.',
|
|
164
|
+
'It does not prove optional native slash-command support for any host adapter.',
|
|
164
165
|
'Owner-required and external-required gates remain incomplete until accepted evidence records promote them.',
|
|
165
|
-
],
|
|
166
|
-
}
|
|
167
|
-
} catch (error) {
|
|
168
|
-
console.error(JSON.stringify({ status: 'failed', root, out, error: error.message }, null, 2))
|
|
169
|
-
process.exit(1)
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (!dryRun) {
|
|
173
|
-
if (fs.existsSync(out) && !force) {
|
|
174
|
-
console.error(JSON.stringify({ status: 'exists', root, out, error: 'output exists; pass --force to overwrite' }, null, 2))
|
|
175
|
-
process.exit(1)
|
|
176
|
-
}
|
|
177
|
-
fs.mkdirSync(path.dirname(out), { recursive: true })
|
|
178
|
-
fs.writeFileSync(out, JSON.stringify(manifest, null, 2) + '\n', 'utf8')
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
const report = {
|
|
182
|
-
status: dryRun ? 'ready' : 'written',
|
|
183
|
-
root,
|
|
184
|
-
out,
|
|
185
|
-
dryRun,
|
|
186
|
-
summary: {
|
|
187
|
-
publicAccepted: manifest.claimBoundary.publicAccepted,
|
|
188
|
-
verifiedRows: manifest.readiness.verified.length,
|
|
189
|
-
ownerRequiredRows: manifest.readiness.ownerRequired.length,
|
|
190
|
-
externalRequiredRows: manifest.readiness.externalRequired.length,
|
|
191
|
-
pendingGates: manifest.publicAcceptance.pendingGates.length,
|
|
192
|
-
nativeSlashCommandRecords: manifest.hostRuntime.nativeSlashCommandRecords,
|
|
193
|
-
portableTextCommandRecords: manifest.hostRuntime.portableTextCommandRecords,
|
|
194
|
-
hostRuntimeInvocationDrill: manifest.hostRuntime.fixtureDrill,
|
|
195
|
-
bundleFiles: manifest.distribution.bundleFiles.length,
|
|
196
|
-
},
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
if (jsonOnly) console.log(JSON.stringify(report, null, 2))
|
|
200
|
-
else console.log(JSON.stringify(manifest, null, 2))
|
|
166
|
+
],
|
|
167
|
+
}
|
|
168
|
+
} catch (error) {
|
|
169
|
+
console.error(JSON.stringify({ status: 'failed', root, out, error: error.message }, null, 2))
|
|
170
|
+
process.exit(1)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (!dryRun) {
|
|
174
|
+
if (fs.existsSync(out) && !force) {
|
|
175
|
+
console.error(JSON.stringify({ status: 'exists', root, out, error: 'output exists; pass --force to overwrite' }, null, 2))
|
|
176
|
+
process.exit(1)
|
|
177
|
+
}
|
|
178
|
+
fs.mkdirSync(path.dirname(out), { recursive: true })
|
|
179
|
+
fs.writeFileSync(out, JSON.stringify(manifest, null, 2) + '\n', 'utf8')
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const report = {
|
|
183
|
+
status: dryRun ? 'ready' : 'written',
|
|
184
|
+
root,
|
|
185
|
+
out,
|
|
186
|
+
dryRun,
|
|
187
|
+
summary: {
|
|
188
|
+
publicAccepted: manifest.claimBoundary.publicAccepted,
|
|
189
|
+
verifiedRows: manifest.readiness.verified.length,
|
|
190
|
+
ownerRequiredRows: manifest.readiness.ownerRequired.length,
|
|
191
|
+
externalRequiredRows: manifest.readiness.externalRequired.length,
|
|
192
|
+
pendingGates: manifest.publicAcceptance.pendingGates.length,
|
|
193
|
+
nativeSlashCommandRecords: manifest.hostRuntime.nativeSlashCommandRecords,
|
|
194
|
+
portableTextCommandRecords: manifest.hostRuntime.portableTextCommandRecords,
|
|
195
|
+
hostRuntimeInvocationDrill: manifest.hostRuntime.fixtureDrill,
|
|
196
|
+
bundleFiles: manifest.distribution.bundleFiles.length,
|
|
197
|
+
},
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (jsonOnly) console.log(JSON.stringify(report, null, 2))
|
|
201
|
+
else console.log(JSON.stringify(manifest, null, 2))
|