release-skill 0.9.32 → 0.9.34
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/.claude-plugin/plugin.json +1 -1
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/.cursor-plugin/plugin.json +1 -1
- package/.kimi-plugin/plugin.json +1 -1
- package/.qoder-plugin/plugin.json +1 -1
- package/CHANGELOG.md +54 -0
- package/INSTALL.md +2 -2
- package/INSTALL.zh-CN.md +2 -2
- package/README.md +31 -13
- package/README.zh-CN.md +17 -13
- package/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/adapters/claude/bin/release-skill.bundle.mjs +5855 -4045
- package/adapters/claude/schemas/.render-manifest.json +8 -4
- package/adapters/claude/schemas/release-plan.schema.json +85 -0
- package/adapters/claude/schemas/release-project.schema.json +18 -0
- package/adapters/claude/schemas/test-intake.schema.json +217 -0
- package/adapters/claude/skills/release-assess/SKILL.md +11 -0
- package/adapters/claude/skills/release-config/SKILL.md +6 -0
- package/adapters/claude/skills/release-help/SKILL.md +20 -4
- package/adapters/claude/skills/release-prepare/SKILL.md +11 -2
- package/adapters/claude/skills/release-setup/SKILL.md +15 -2
- package/adapters/claude/skills/release-verify/SKILL.md +2 -0
- package/adapters/codex/.codex-plugin/plugin.json +2 -2
- package/adapters/codex/bin/release-skill.bundle.mjs +5855 -4045
- package/adapters/codex/schemas/.render-manifest.json +8 -4
- package/adapters/codex/schemas/release-plan.schema.json +85 -0
- package/adapters/codex/schemas/release-project.schema.json +18 -0
- package/adapters/codex/schemas/test-intake.schema.json +217 -0
- package/adapters/codex/skills/release-assess/SKILL.md +11 -0
- package/adapters/codex/skills/release-config/SKILL.md +6 -0
- package/adapters/codex/skills/release-help/SKILL.md +20 -4
- package/adapters/codex/skills/release-prepare/SKILL.md +11 -2
- package/adapters/codex/skills/release-setup/SKILL.md +15 -2
- package/adapters/codex/skills/release-verify/SKILL.md +2 -0
- package/adapters/cursor/.cursor-plugin/plugin.json +1 -1
- package/adapters/cursor/bin/release-skill.bundle.mjs +5855 -4045
- package/adapters/cursor/schemas/.render-manifest.json +8 -4
- package/adapters/cursor/schemas/release-plan.schema.json +85 -0
- package/adapters/cursor/schemas/release-project.schema.json +18 -0
- package/adapters/cursor/schemas/test-intake.schema.json +217 -0
- package/adapters/cursor/skills/release-assess/SKILL.md +11 -0
- package/adapters/cursor/skills/release-config/SKILL.md +6 -0
- package/adapters/cursor/skills/release-help/SKILL.md +20 -4
- package/adapters/cursor/skills/release-prepare/SKILL.md +11 -2
- package/adapters/cursor/skills/release-setup/SKILL.md +15 -2
- package/adapters/cursor/skills/release-verify/SKILL.md +2 -0
- package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
- package/adapters/kimi/bin/release-skill.bundle.mjs +5855 -4045
- package/adapters/kimi/schemas/.render-manifest.json +8 -4
- package/adapters/kimi/schemas/release-plan.schema.json +85 -0
- package/adapters/kimi/schemas/release-project.schema.json +18 -0
- package/adapters/kimi/schemas/test-intake.schema.json +217 -0
- package/adapters/kimi/skills/release-assess/SKILL.md +11 -0
- package/adapters/kimi/skills/release-config/SKILL.md +6 -0
- package/adapters/kimi/skills/release-help/SKILL.md +20 -4
- package/adapters/kimi/skills/release-prepare/SKILL.md +11 -2
- package/adapters/kimi/skills/release-setup/SKILL.md +15 -2
- package/adapters/kimi/skills/release-verify/SKILL.md +2 -0
- package/adapters/qoder/.qoder-plugin/plugin.json +1 -1
- package/adapters/qoder/bin/release-skill.bundle.mjs +5855 -4045
- package/adapters/qoder/schemas/.render-manifest.json +8 -4
- package/adapters/qoder/schemas/release-plan.schema.json +85 -0
- package/adapters/qoder/schemas/release-project.schema.json +18 -0
- package/adapters/qoder/schemas/test-intake.schema.json +217 -0
- package/adapters/qoder/skills/release-assess/SKILL.md +11 -0
- package/adapters/qoder/skills/release-config/SKILL.md +6 -0
- package/adapters/qoder/skills/release-help/SKILL.md +20 -4
- package/adapters/qoder/skills/release-prepare/SKILL.md +11 -2
- package/adapters/qoder/skills/release-setup/SKILL.md +15 -2
- package/adapters/qoder/skills/release-verify/SKILL.md +2 -0
- package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
- package/adapters/workbuddy/bin/release-skill.bundle.mjs +5855 -4045
- package/adapters/workbuddy/schemas/.render-manifest.json +8 -4
- package/adapters/workbuddy/schemas/release-plan.schema.json +85 -0
- package/adapters/workbuddy/schemas/release-project.schema.json +18 -0
- package/adapters/workbuddy/schemas/test-intake.schema.json +217 -0
- package/adapters/workbuddy/skills/release-assess/SKILL.md +11 -0
- package/adapters/workbuddy/skills/release-config/SKILL.md +6 -0
- package/adapters/workbuddy/skills/release-help/SKILL.md +20 -4
- package/adapters/workbuddy/skills/release-prepare/SKILL.md +11 -2
- package/adapters/workbuddy/skills/release-setup/SKILL.md +15 -2
- package/adapters/workbuddy/skills/release-verify/SKILL.md +2 -0
- package/bin/release-skill-cli.mjs +37 -2
- package/bin/release-skill.bundle.mjs +5855 -4045
- package/package.json +1 -1
- package/platform-manifest.json +4 -4
- package/references/.render-manifest.json +6 -6
- package/references/01-state-machine.md +12 -1
- package/references/02-project-config.md +20 -0
- package/references/05-evidence-and-errors.md +30 -0
- package/schemas/.render-manifest.json +8 -4
- package/schemas/release-plan.schema.json +85 -0
- package/schemas/release-project.schema.json +18 -0
- package/schemas/test-intake.schema.json +217 -0
- package/skills/release-assess/SKILL.md +11 -0
- package/skills/release-config/SKILL.md +6 -0
- package/skills/release-help/SKILL.md +20 -4
- package/skills/release-prepare/SKILL.md +11 -2
- package/skills/release-setup/SKILL.md +15 -2
- package/skills/release-verify/SKILL.md +2 -0
- package/skills-src/release-assess/SKILL.md +11 -0
- package/skills-src/release-config/SKILL.md +6 -0
- package/skills-src/release-help/SKILL.md +20 -4
- package/skills-src/release-prepare/SKILL.md +11 -2
- package/skills-src/release-setup/SKILL.md +15 -2
- package/skills-src/release-verify/SKILL.md +2 -0
- package/src/commands/approve.mjs +13 -0
- package/src/commands/prepare.mjs +501 -5
- package/src/commands/publish.mjs +2 -0
- package/src/commands/reconcile.mjs +2 -0
- package/src/commands/route.mjs +32 -7
- package/src/commands/setup.mjs +13 -6
- package/src/commands/ship.mjs +168 -5
- package/src/core/config.mjs +5 -0
- package/src/core/plan.mjs +3 -1
- package/src/core/test-candidate.mjs +649 -0
- package/src/core/test-intake.mjs +645 -0
|
@@ -5,7 +5,7 @@ import { basename, dirname, isAbsolute, join, normalize, resolve } from 'node:pa
|
|
|
5
5
|
import { execFile as execFileCb } from 'node:child_process';
|
|
6
6
|
import { promisify } from 'node:util';
|
|
7
7
|
import { parseNodeMajor, meetsMinimum, computeReadinessStatus } from '../src/core/node-version.mjs';
|
|
8
|
-
import { EXIT_CODE_MAP, MISSING_PARAMETERS, registerPathRedactor } from '../src/core/errors.mjs';
|
|
8
|
+
import { EXIT_CODE_MAP, MISSING_PARAMETERS, ReleaseError, registerPathRedactor } from '../src/core/errors.mjs';
|
|
9
9
|
import { redactSensitivePaths } from '../src/core/redact.mjs';
|
|
10
10
|
|
|
11
11
|
// Process output errors can be emitted immediately after a large console
|
|
@@ -1362,7 +1362,11 @@ if (command === 'prepare') {
|
|
|
1362
1362
|
const hooksAuthorized = args.includes('--acknowledge-hook-side-effects');
|
|
1363
1363
|
const verificationGatesAuthorized = args.includes('--acknowledge-gate-side-effects');
|
|
1364
1364
|
const hookCache = !args.includes('--no-hook-cache');
|
|
1365
|
-
const
|
|
1365
|
+
const candidateIdx = args.indexOf('--candidate');
|
|
1366
|
+
const candidatePath = candidateIdx !== -1 && args[candidateIdx + 1] && !args[candidateIdx + 1].startsWith('--')
|
|
1367
|
+
? args[candidateIdx + 1]
|
|
1368
|
+
: undefined;
|
|
1369
|
+
const production = args.includes('--production') || candidatePath !== undefined;
|
|
1366
1370
|
const workflowIdx = args.indexOf('--workflow');
|
|
1367
1371
|
const workflow = workflowIdx !== -1 && args[workflowIdx + 1] ? args[workflowIdx + 1] : 'full';
|
|
1368
1372
|
// Test-selection flag (2026-08-18 investigation §4.4): reserved for a
|
|
@@ -1385,23 +1389,54 @@ if (command === 'prepare') {
|
|
|
1385
1389
|
}
|
|
1386
1390
|
|
|
1387
1391
|
try {
|
|
1392
|
+
if (candidateIdx !== -1 && !candidatePath) {
|
|
1393
|
+
throw new ReleaseError(MISSING_PARAMETERS, '--candidate requires a path value');
|
|
1394
|
+
}
|
|
1388
1395
|
const { prepareRelease } = await import('../src/commands/prepare.mjs');
|
|
1389
1396
|
const { readFile: readFileFs } = await import('node:fs/promises');
|
|
1390
1397
|
const result = await prepareRelease({
|
|
1391
1398
|
root,
|
|
1392
1399
|
version: targetVersion,
|
|
1400
|
+
versionExplicit: targetVersion !== undefined,
|
|
1393
1401
|
offline,
|
|
1402
|
+
offlineExplicit: args.includes('--offline') || args.includes('--online'),
|
|
1394
1403
|
hooksAuthorized,
|
|
1395
1404
|
verificationGatesAuthorized,
|
|
1396
1405
|
hookCache,
|
|
1397
1406
|
production,
|
|
1398
1407
|
workflow,
|
|
1408
|
+
workflowExplicit: workflowIdx !== -1,
|
|
1399
1409
|
testSelection,
|
|
1400
1410
|
output,
|
|
1401
1411
|
runDir,
|
|
1412
|
+
...(candidatePath ? { candidatePath } : {}),
|
|
1402
1413
|
...(hasUnitSelection ? { unitIds } : {}),
|
|
1403
1414
|
});
|
|
1404
1415
|
|
|
1416
|
+
if (result?.status === 'NEEDS_INPUT') {
|
|
1417
|
+
const payload = {
|
|
1418
|
+
command: 'prepare',
|
|
1419
|
+
error: 'GATE_FAILED',
|
|
1420
|
+
status: 'NEEDS_INPUT',
|
|
1421
|
+
message: result.message,
|
|
1422
|
+
candidatePath: result.candidatePath,
|
|
1423
|
+
candidateSha256: result.candidateSha256,
|
|
1424
|
+
subjectDigest: result.subjectDigest,
|
|
1425
|
+
evidenceDir: result.evidenceDir,
|
|
1426
|
+
requirements: result.requirements ?? [],
|
|
1427
|
+
gaps: result.gaps ?? [],
|
|
1428
|
+
nextSteps: result.nextSteps ?? [],
|
|
1429
|
+
exitCode: result.exitCode ?? 13,
|
|
1430
|
+
};
|
|
1431
|
+
if (hasJson) {
|
|
1432
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
1433
|
+
} else {
|
|
1434
|
+
console.error(`Error: ${result.message}`);
|
|
1435
|
+
if (result.candidatePath) console.error(`Candidate: ${result.candidatePath}`);
|
|
1436
|
+
}
|
|
1437
|
+
await exitAfterFlush(result.exitCode ?? 13);
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1405
1440
|
// Keep stdout compact and stable. The immutable plan remains the single
|
|
1406
1441
|
// authority at planPath; callers should not have to carry its full
|
|
1407
1442
|
// source closure, manifests and action payloads through chat/logs.
|