universal-dev-standards 5.4.0 → 5.6.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/bundled/ai/options/testing/integration-testing.ai.yaml +2 -2
- package/bundled/ai/options/testing/unit-testing.ai.yaml +2 -2
- package/bundled/ai/standards/adversarial-test.ai.yaml +277 -0
- package/bundled/ai/standards/audit-trail.ai.yaml +113 -0
- package/bundled/ai/standards/browser-compatibility-standards.ai.yaml +63 -0
- package/bundled/ai/standards/chaos-injection-tests.ai.yaml +91 -0
- package/bundled/ai/standards/container-image-standards.ai.yaml +88 -0
- package/bundled/ai/standards/container-security.ai.yaml +331 -0
- package/bundled/ai/standards/contract-testing-standards.ai.yaml +62 -0
- package/bundled/ai/standards/cost-budget-test.ai.yaml +96 -0
- package/bundled/ai/standards/cross-flow-regression.ai.yaml +61 -0
- package/bundled/ai/standards/data-contract.ai.yaml +110 -0
- package/bundled/ai/standards/data-migration-testing.ai.yaml +96 -0
- package/bundled/ai/standards/data-pipeline.ai.yaml +113 -0
- package/bundled/ai/standards/disaster-recovery-drill.ai.yaml +89 -0
- package/bundled/ai/standards/flaky-test-management.ai.yaml +89 -0
- package/bundled/ai/standards/flow-based-testing.ai.yaml +240 -0
- package/bundled/ai/standards/full-coverage-testing.ai.yaml +192 -0
- package/bundled/ai/standards/iac-design-principles.ai.yaml +83 -0
- package/bundled/ai/standards/incident-response.ai.yaml +107 -0
- package/bundled/ai/standards/license-compliance.ai.yaml +106 -0
- package/bundled/ai/standards/llm-output-validation.ai.yaml +269 -0
- package/bundled/ai/standards/mock-boundary.ai.yaml +250 -0
- package/bundled/ai/standards/mutation-testing.ai.yaml +192 -0
- package/bundled/ai/standards/pii-classification.ai.yaml +109 -0
- package/bundled/ai/standards/policy-as-code-testing.ai.yaml +227 -0
- package/bundled/ai/standards/prd-standards.ai.yaml +88 -0
- package/bundled/ai/standards/product-metrics-standards.ai.yaml +111 -0
- package/bundled/ai/standards/prompt-regression.ai.yaml +94 -0
- package/bundled/ai/standards/property-based-testing.ai.yaml +105 -0
- package/bundled/ai/standards/release-quality-manifest.ai.yaml +135 -0
- package/bundled/ai/standards/release-readiness-gate.ai.yaml +77 -0
- package/bundled/ai/standards/replay-test.ai.yaml +111 -0
- package/bundled/ai/standards/runbook.ai.yaml +104 -0
- package/bundled/ai/standards/sast-advanced.ai.yaml +135 -0
- package/bundled/ai/standards/schema-evolution.ai.yaml +111 -0
- package/bundled/ai/standards/secret-management-standards.ai.yaml +105 -0
- package/bundled/ai/standards/secure-op.ai.yaml +365 -0
- package/bundled/ai/standards/security-testing.ai.yaml +171 -0
- package/bundled/ai/standards/server-ops-security.ai.yaml +274 -0
- package/bundled/ai/standards/slo-sli.ai.yaml +97 -0
- package/bundled/ai/standards/smoke-test.ai.yaml +87 -0
- package/bundled/ai/standards/supply-chain-attestation.ai.yaml +109 -0
- package/bundled/ai/standards/test-completeness-dimensions.ai.yaml +52 -5
- package/bundled/ai/standards/testing.ai.yaml +20 -13
- package/bundled/ai/standards/user-story-mapping.ai.yaml +108 -0
- package/bundled/core/accessibility-standards.md +58 -0
- package/bundled/core/adversarial-test.md +212 -0
- package/bundled/core/branch-completion.md +4 -0
- package/bundled/core/browser-compatibility-standards.md +220 -0
- package/bundled/core/chaos-injection-tests.md +116 -0
- package/bundled/core/checkin-standards.md +1 -0
- package/bundled/core/container-security.md +521 -0
- package/bundled/core/contract-testing-standards.md +182 -0
- package/bundled/core/cost-budget-test.md +69 -0
- package/bundled/core/cross-flow-regression.md +190 -0
- package/bundled/core/data-migration-testing.md +110 -0
- package/bundled/core/disaster-recovery-drill.md +73 -0
- package/bundled/core/flaky-test-management.md +73 -0
- package/bundled/core/flow-based-testing.md +275 -0
- package/bundled/core/full-coverage-testing.md +183 -0
- package/bundled/core/llm-output-validation.md +178 -0
- package/bundled/core/mock-boundary.md +100 -0
- package/bundled/core/mutation-testing.md +97 -0
- package/bundled/core/performance-standards.md +65 -0
- package/bundled/core/policy-as-code-testing.md +188 -0
- package/bundled/core/prompt-regression.md +72 -0
- package/bundled/core/property-based-testing.md +73 -0
- package/bundled/core/release-quality-manifest.md +193 -0
- package/bundled/core/release-readiness-gate.md +184 -0
- package/bundled/core/replay-test.md +86 -0
- package/bundled/core/sast-advanced.md +300 -0
- package/bundled/core/secure-op.md +314 -0
- package/bundled/core/security-testing.md +87 -0
- package/bundled/core/server-ops-security.md +493 -0
- package/bundled/core/smoke-test.md +65 -0
- package/bundled/core/supply-chain-attestation.md +117 -0
- package/bundled/locales/zh-CN/CHANGELOG.md +3 -3
- package/bundled/locales/zh-CN/README.md +1 -1
- package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +5 -5
- package/bundled/locales/zh-TW/CHANGELOG.md +3 -3
- package/bundled/locales/zh-TW/README.md +1 -1
- package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +11 -0
- package/bundled/locales/zh-TW/core/contract-testing-standards.md +11 -0
- package/bundled/locales/zh-TW/core/cross-flow-regression.md +11 -0
- package/bundled/locales/zh-TW/core/release-readiness-gate.md +11 -0
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +183 -79
- package/bundled/skills/README.md +4 -3
- package/bundled/skills/SKILL_NAMING.md +94 -0
- package/bundled/skills/ai-instruction-standards/SKILL.md +181 -88
- package/bundled/skills/atdd-assistant/SKILL.md +8 -0
- package/bundled/skills/bdd-assistant/SKILL.md +7 -0
- package/bundled/skills/checkin-assistant/SKILL.md +8 -0
- package/bundled/skills/code-review-assistant/SKILL.md +7 -0
- package/bundled/skills/journey-test-assistant/SKILL.md +203 -0
- package/bundled/skills/orchestrate/SKILL.md +167 -0
- package/bundled/skills/plan/SKILL.md +234 -0
- package/bundled/skills/pr-automation-assistant/SKILL.md +8 -0
- package/bundled/skills/push/SKILL.md +49 -2
- package/bundled/skills/{process-automation → skill-builder}/SKILL.md +1 -1
- package/bundled/skills/{forward-derivation → spec-derivation}/SKILL.md +1 -1
- package/bundled/skills/spec-driven-dev/SKILL.md +7 -0
- package/bundled/skills/sweep/SKILL.md +145 -0
- package/bundled/skills/tdd-assistant/SKILL.md +7 -0
- package/package.json +6 -6
- package/src/commands/check.js +43 -0
- package/src/commands/flow.js +8 -0
- package/src/commands/init.js +2 -1
- package/src/commands/start.js +14 -0
- package/src/commands/sweep.js +8 -0
- package/src/commands/update.js +10 -0
- package/src/commands/workflow.js +8 -0
- package/standards-registry.json +483 -5
- package/bundled/locales/zh-CN/skills/ac-coverage-assistant/SKILL.md +0 -190
- package/bundled/locales/zh-CN/skills/forward-derivation/SKILL.md +0 -71
- package/bundled/locales/zh-CN/skills/forward-derivation/guide.md +0 -130
- package/bundled/locales/zh-CN/skills/methodology-system/SKILL.md +0 -88
- package/bundled/locales/zh-CN/skills/methodology-system/create-methodology.md +0 -350
- package/bundled/locales/zh-CN/skills/methodology-system/guide.md +0 -131
- package/bundled/locales/zh-CN/skills/methodology-system/runtime.md +0 -279
- package/bundled/locales/zh-CN/skills/process-automation/SKILL.md +0 -143
- package/bundled/locales/zh-TW/skills/ac-coverage-assistant/SKILL.md +0 -195
- package/bundled/locales/zh-TW/skills/deploy-assistant/SKILL.md +0 -178
- package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +0 -69
- package/bundled/locales/zh-TW/skills/forward-derivation/guide.md +0 -415
- package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +0 -86
- package/bundled/locales/zh-TW/skills/methodology-system/create-methodology.md +0 -350
- package/bundled/locales/zh-TW/skills/methodology-system/guide.md +0 -131
- package/bundled/locales/zh-TW/skills/methodology-system/runtime.md +0 -279
- package/bundled/locales/zh-TW/skills/process-automation/SKILL.md +0 -144
- /package/bundled/skills/{ac-coverage-assistant → ac-coverage}/SKILL.md +0 -0
- /package/bundled/skills/{methodology-system → dev-methodology}/SKILL.md +0 -0
- /package/bundled/skills/{methodology-system → dev-methodology}/create-methodology.md +0 -0
- /package/bundled/skills/{methodology-system → dev-methodology}/guide.md +0 -0
- /package/bundled/skills/{methodology-system → dev-methodology}/integrated-flow.md +0 -0
- /package/bundled/skills/{methodology-system → dev-methodology}/prerequisite-check.md +0 -0
- /package/bundled/skills/{methodology-system → dev-methodology}/runtime.md +0 -0
- /package/bundled/skills/{forward-derivation → spec-derivation}/guide.md +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "universal-dev-standards",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.6.0",
|
|
4
4
|
"description": "CLI tool for adopting Universal Development Standards",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"documentation",
|
|
@@ -59,23 +59,23 @@
|
|
|
59
59
|
"prepack": "node scripts/prepack.mjs"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@inquirer/prompts": "8.4.
|
|
62
|
+
"@inquirer/prompts": "^8.4.2",
|
|
63
63
|
"chalk": "^5.3.0",
|
|
64
64
|
"commander": "^14.0.0",
|
|
65
65
|
"js-yaml": "^4.1.0",
|
|
66
|
-
"ora": "^9.
|
|
66
|
+
"ora": "^9.4.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@eslint/js": "^10.0.1",
|
|
70
|
-
"@vitest/coverage-v8": "^4.1.
|
|
71
|
-
"ajv": "^8.
|
|
70
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
71
|
+
"ajv": "^8.20.0",
|
|
72
72
|
"ajv-formats": "^3.0.1",
|
|
73
73
|
"eslint": "10.2.1",
|
|
74
74
|
"glob": "^13.0.1",
|
|
75
75
|
"globals": "17.5.0",
|
|
76
76
|
"husky": "^9.1.7",
|
|
77
77
|
"lint-staged": "^16.4.0",
|
|
78
|
-
"vitest": "^4.1.
|
|
78
|
+
"vitest": "^4.1.5"
|
|
79
79
|
},
|
|
80
80
|
"lint-staged": {
|
|
81
81
|
"src/**/*.js": [
|
package/src/commands/check.js
CHANGED
|
@@ -3,6 +3,7 @@ import { select } from '@inquirer/prompts';
|
|
|
3
3
|
import ora from 'ora';
|
|
4
4
|
import { existsSync, readFileSync } from 'fs';
|
|
5
5
|
import { join, basename } from 'path';
|
|
6
|
+
import { execSync } from 'child_process';
|
|
6
7
|
import { readManifest, writeManifest, isInitialized, copyStandard, copyIntegration } from '../utils/copier.js';
|
|
7
8
|
import {
|
|
8
9
|
getAllStandards,
|
|
@@ -360,6 +361,9 @@ export async function checkCommand(options = {}) {
|
|
|
360
361
|
// Coverage report
|
|
361
362
|
displayCoverageReport(manifest, msg, common, projectPath);
|
|
362
363
|
|
|
364
|
+
// XSPEC-178: Full coverage compliance check
|
|
365
|
+
checkFullCoverageCompliance(manifest, projectPath);
|
|
366
|
+
|
|
363
367
|
// Workflow status
|
|
364
368
|
displayWorkflowStatus(projectPath);
|
|
365
369
|
|
|
@@ -923,6 +927,45 @@ function displaySkillsStatus(manifest, projectPath, msg) {
|
|
|
923
927
|
return { missingSkills, missingCommands };
|
|
924
928
|
}
|
|
925
929
|
|
|
930
|
+
/**
|
|
931
|
+
* XSPEC-178: Check full-coverage-testing standard presence and STUB markers
|
|
932
|
+
*/
|
|
933
|
+
function checkFullCoverageCompliance(manifest, projectPath) {
|
|
934
|
+
// Check 1: full-coverage-testing.ai.yaml presence
|
|
935
|
+
const fullCoveragePath = join(projectPath, '.standards', 'full-coverage-testing.ai.yaml');
|
|
936
|
+
const hasFullCoverage = existsSync(fullCoveragePath);
|
|
937
|
+
|
|
938
|
+
if (!hasFullCoverage) {
|
|
939
|
+
try {
|
|
940
|
+
const semver = manifest?.upstream?.version || '0.0.0';
|
|
941
|
+
const parts = semver.split('.').map(Number);
|
|
942
|
+
const isV5_5plus = parts[0] > 5 || (parts[0] === 5 && (parts[1] || 0) >= 5);
|
|
943
|
+
if (isV5_5plus) {
|
|
944
|
+
console.log(chalk.yellow(' ⚠ [XSPEC-178] full-coverage-testing.ai.yaml not found.'));
|
|
945
|
+
console.log(chalk.gray(' Run `uds update` to install the full-coverage testing standard.'));
|
|
946
|
+
console.log();
|
|
947
|
+
}
|
|
948
|
+
} catch { /* ignore semver parse errors */ }
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
// Check 2: STUB marker count (advisory)
|
|
952
|
+
const srcDir = join(projectPath, 'src');
|
|
953
|
+
if (existsSync(srcDir)) {
|
|
954
|
+
try {
|
|
955
|
+
const result = execSync(
|
|
956
|
+
`grep -rn "WARNING: STUB" "${srcDir}" --include="*.ts" --include="*.js" 2>/dev/null | wc -l`,
|
|
957
|
+
{ encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] }
|
|
958
|
+
).trim();
|
|
959
|
+
const stubCount = parseInt(result, 10) || 0;
|
|
960
|
+
if (stubCount > 0) {
|
|
961
|
+
console.log(chalk.yellow(` ⚠ [STUB] ${stubCount} STUB marker(s) found in src/.`));
|
|
962
|
+
console.log(chalk.gray(' Must be removed before UAT/production deployment (XSPEC-178).'));
|
|
963
|
+
console.log();
|
|
964
|
+
}
|
|
965
|
+
} catch { /* grep not available or src not scannable */ }
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
|
|
926
969
|
/**
|
|
927
970
|
* Display coverage report
|
|
928
971
|
*/
|
package/src/commands/flow.js
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
* UDS Flow Command — SPEC-FLOW-001
|
|
3
3
|
*
|
|
4
4
|
* CLI 命令:管理自訂 SDLC 流程(create/list/validate/diff/export/import)。
|
|
5
|
+
*
|
|
6
|
+
* @deprecated XSPEC-095 (2026-04-28): This command is superseded by `devap flow`.
|
|
7
|
+
* The list/validate/diff operations have been extracted to DevAP:
|
|
8
|
+
* - CLI command: dev-autopilot/packages/cli/src/commands/flow-mgmt.ts
|
|
9
|
+
*
|
|
10
|
+
* 棄用理由:UDS 專注於活動定義,DevAP 承擔流程編排(XSPEC-086 / DEC-049)。
|
|
11
|
+
* UDS 5.x 仍維持本命令可用(向後相容),UDS 6.0.0 將移除。
|
|
12
|
+
* 建議遷移:`uds flow list/validate/diff` → `devap flow list/validate/diff`
|
|
5
13
|
*/
|
|
6
14
|
|
|
7
15
|
import { existsSync, readdirSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
package/src/commands/init.js
CHANGED
|
@@ -399,7 +399,8 @@ function buildNonInteractiveConfig(options, detected, projectPath) {
|
|
|
399
399
|
workflow: options.workflow || 'github-flow',
|
|
400
400
|
merge_strategy: options.mergeStrategy || 'squash',
|
|
401
401
|
output_language: options.outputLang || 'english',
|
|
402
|
-
test_levels: options.testLevels ? options.testLevels.split(',') : ['unit-testing', 'integration-testing', 'system-testing', 'e2e-testing']
|
|
402
|
+
test_levels: options.testLevels ? options.testLevels.split(',') : ['unit-testing', 'integration-testing', 'system-testing', 'e2e-testing'],
|
|
403
|
+
coverage_model: options.coverageModel || 'full-coverage'
|
|
403
404
|
},
|
|
404
405
|
skillsConfig,
|
|
405
406
|
aiTools: aiToolsNormalized,
|
package/src/commands/start.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UDS Start Command — Mission 任務啟動
|
|
3
|
+
*
|
|
4
|
+
* 啟動一個具名任務(Mission)並設定任務意圖。
|
|
5
|
+
*
|
|
6
|
+
* @deprecated XSPEC-095 (2026-04-28): This command is superseded by `devap mission`.
|
|
7
|
+
* The orchestration logic has been extracted to DevAP:
|
|
8
|
+
* - Core module: dev-autopilot/packages/core/src/mission/
|
|
9
|
+
* - CLI command: dev-autopilot/packages/cli/src/commands/mission.ts
|
|
10
|
+
*
|
|
11
|
+
* 棄用理由:UDS 專注於活動定義,DevAP 承擔流程編排(XSPEC-086 / DEC-049)。
|
|
12
|
+
* UDS 5.x 仍維持本命令可用(向後相容),UDS 6.0.0 將移除。
|
|
13
|
+
* 建議遷移:`uds start ...` → `devap mission start <type> "<intent>"`
|
|
14
|
+
*/
|
|
1
15
|
import chalk from 'chalk';
|
|
2
16
|
import { select, input, confirm as inquirerConfirm } from '@inquirer/prompts';
|
|
3
17
|
import { MissionManager, MissionType, MissionState } from '../missions/MissionManager.js';
|
package/src/commands/sweep.js
CHANGED
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module commands/sweep
|
|
8
8
|
* @see docs/specs/system/vibe-coding-integration.md (AC-2)
|
|
9
|
+
* @deprecated XSPEC-095 (2026-04-28): This command is superseded by `devap sweep`.
|
|
10
|
+
* The orchestration logic has been extracted to DevAP:
|
|
11
|
+
* - Core module: dev-autopilot/packages/core/src/sweep/
|
|
12
|
+
* - CLI command: dev-autopilot/packages/cli/src/commands/sweep.ts
|
|
13
|
+
*
|
|
14
|
+
* 棄用理由:UDS 專注於活動定義,DevAP 承擔流程編排(XSPEC-086 / DEC-049)。
|
|
15
|
+
* UDS 5.x 仍維持本命令可用(向後相容),UDS 6.0.0 將移除。
|
|
16
|
+
* 建議遷移:`uds sweep ...` → `devap sweep [--fix] [--report]`
|
|
9
17
|
*/
|
|
10
18
|
|
|
11
19
|
import chalk from 'chalk';
|
package/src/commands/update.js
CHANGED
|
@@ -686,6 +686,16 @@ export async function updateCommand(options) {
|
|
|
686
686
|
}
|
|
687
687
|
}
|
|
688
688
|
|
|
689
|
+
// Migrate testing paradigm: pyramid thresholds → full-coverage (v5.5.0, XSPEC-178)
|
|
690
|
+
const isPreV5_5 = compareVersions(installedVersion, '5.5.0') < 0;
|
|
691
|
+
if (isPreV5_5) {
|
|
692
|
+
manifest.options = manifest.options || {};
|
|
693
|
+
manifest.options.coverage_model = manifest.options.coverage_model || 'full-coverage';
|
|
694
|
+
console.log();
|
|
695
|
+
console.log(chalk.yellow(msg.testParadigmMigrated || '⚠ Testing paradigm migrated: pyramid thresholds (UT≥80%/IT≥70%) → behavior-completeness full coverage (XSPEC-178)'));
|
|
696
|
+
console.log(chalk.cyan(msg.testParadigmNote || ' full-coverage-testing.ai.yaml installed. Review scripts/check-stubs.sh and scripts/check-anti-fake-tests.sh in your project.'));
|
|
697
|
+
}
|
|
698
|
+
|
|
689
699
|
// Update manifest
|
|
690
700
|
manifest.version = '3.3.0';
|
|
691
701
|
manifest.upstream.version = latestVersion;
|
package/src/commands/workflow.js
CHANGED
|
@@ -4,6 +4,14 @@
|
|
|
4
4
|
* CLI commands for listing and installing UDS workflows.
|
|
5
5
|
*
|
|
6
6
|
* @version 1.0.0
|
|
7
|
+
* @deprecated XSPEC-095 (2026-04-28): This command is superseded by `devap workflow`.
|
|
8
|
+
* The orchestration logic has been extracted to DevAP:
|
|
9
|
+
* - Core module: dev-autopilot/packages/core/src/workflow-state/ + core/src/flow/
|
|
10
|
+
* - CLI command: dev-autopilot/packages/cli/src/commands/workflow.ts
|
|
11
|
+
*
|
|
12
|
+
* 棄用理由:UDS 專注於活動定義,DevAP 承擔流程編排(XSPEC-086 / DEC-049)。
|
|
13
|
+
* UDS 5.x 仍維持本命令可用(向後相容),UDS 6.0.0 將移除。
|
|
14
|
+
* 建議遷移:`uds workflow ...` → `devap workflow list/execute/status`
|
|
7
15
|
*/
|
|
8
16
|
|
|
9
17
|
import chalk from 'chalk';
|