@thomasminh1995/depverdict 0.6.0-alpha.1
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/LICENSE +21 -0
- package/README.md +518 -0
- package/bin/depverdict.js +7 -0
- package/bin/upgradelens.js +7 -0
- package/docs/GR-01-Semantic-Grounding-Failure-Analysis.md +309 -0
- package/docs/GR-02-Versioned-Action-Evaluation-Criteria.md +187 -0
- package/docs/GR-03-Extractive-Contract-Safety-Experiment.md +242 -0
- package/docs/GR-04-Versioned-Production-Extractive-Contract.md +154 -0
- package/docs/IA-01-Repository-Usage-Discovery.md +122 -0
- package/docs/IA-02-Repository-Impact-Analysis.md +118 -0
- package/docs/IA-03-Repository-Impact-Evidence.md +160 -0
- package/docs/IA-04-CLI-Orchestration.md +235 -0
- package/docs/IA-05-Real-Provider-Validation.md +235 -0
- package/docs/IA-05-VinGrade-Validation.md +339 -0
- package/docs/MVP-01.md +48 -0
- package/docs/MVP-02-Architecture.md +536 -0
- package/docs/MVP-02-CLI-HTTP-Runtime.md +50 -0
- package/docs/MVP-02-HTTP-Lifecycle.md +37 -0
- package/docs/MVP-02-Knowledge-Manifest-Generation.md +75 -0
- package/docs/MVP-02-Knowledge-Manifest.md +279 -0
- package/docs/MVP-02-Knowledge-Research-Orchestration.md +62 -0
- package/docs/MVP-02-Knowledge-Store.md +87 -0
- package/docs/MVP-02-PyPI-Registry-Adapter.md +97 -0
- package/docs/MVP-02-Research-Planning.md +196 -0
- package/docs/MVP-02-Source-Provenance.md +81 -0
- package/docs/MVP-02-npm-Registry-Adapter.md +99 -0
- package/docs/RR-01-End-to-End-and-Real-Provider-Validation.md +393 -0
- package/docs/RR-01-RERUN-Extractive-Contract-Validation.md +566 -0
- package/docs/RR-02-Full-Product-Workflow-and-Developer-CLI-UX-Review.md +35 -0
- package/docs/RR02-FIX-01-Persistent-Qualification-Resolution.md +32 -0
- package/docs/RR02-FIX-02-Stage-aware-CLI-Progress-and-Heartbeat.md +28 -0
- package/docs/RR02-FIX-03-npm-Capture-Evidence-Exclusion.md +33 -0
- package/docs/RR02-FIX-03A-Complete-Package-Exclusion-and-Evidence-Commit.md +223 -0
- package/docs/RR02-FIX-04-Event-loop-safe-Heartbeat.md +393 -0
- package/docs/RR02-FIX-05-Materialize-Persisted-Qualification.md +207 -0
- package/docs/RR02-RERUN-CLI-Qualification-Progress-UX-and-Package-Validation.md +342 -0
- package/docs/VinGrade-MVP-02-Validation.md +480 -0
- package/docs/VinGrade-RC02-Live-Validation.md +273 -0
- package/docs/ai-capability-discovery.md +573 -0
- package/docs/ai-engineering-production-readiness.md +390 -0
- package/docs/ai-engineering-review.md +251 -0
- package/docs/ai-runtime-governance-discovery.md +754 -0
- package/docs/architecture-overview.md +78 -0
- package/docs/cli-progress.md +111 -0
- package/docs/decisions/diff-01-brand-distribution-identity.md +450 -0
- package/docs/decisions/diff-02-identity-compatibility-contract.md +274 -0
- package/docs/decisions/diff-03-repository-docs-community-migration.md +165 -0
- package/docs/decisions/diff-04-release-evidence-gap-acceptance.md +110 -0
- package/docs/discovery/mvp-05-ai-migration-planning-discovery.md +350 -0
- package/docs/gateway-runtime-discovery.md +614 -0
- package/docs/live-ai-validation.md +299 -0
- package/docs/migration-planning-qualification-resolution.md +99 -0
- package/docs/migrations/upgradelens-to-depverdict.md +97 -0
- package/docs/mp-r03-deterministic-upgrade-decision-architecture.md +135 -0
- package/docs/mp-r04-evidence-bounded-migration-handoff-architecture.md +116 -0
- package/docs/mp-r05-product-completion-and-decision-first-cli-architecture.md +162 -0
- package/docs/mvp-05-deterministic-context-runtime.md +127 -0
- package/docs/mvp-05-migration-checklist-contract.md +166 -0
- package/docs/mvp-05-migration-checklist-orchestration.md +105 -0
- package/docs/mvp-05-migration-evaluation-and-qualification.md +135 -0
- package/docs/mvp-05-provider-neutral-generator.md +79 -0
- package/docs/ollama-local-smoke-validation.md +156 -0
- package/docs/openai-compatible-runtime-discovery.md +789 -0
- package/docs/openrouter-one-dependency-validation.md +205 -0
- package/docs/oss-02-package-guard-hardening-architecture.md +131 -0
- package/docs/oss-04-public-ci-package-metadata-architecture.md +142 -0
- package/docs/package-content-policy.md +98 -0
- package/docs/releases/v0.5.0-technical-preview.md +114 -0
- package/docs/releases/v0.6.0-alpha.1-depverdict-preview.md +101 -0
- package/docs/reviews/diff-02-identity-contract-compatibility.md +413 -0
- package/docs/reviews/diff-03-repository-docs-community-migration.md +364 -0
- package/docs/reviews/diff-04-depverdict-distribution-identity-readiness-rereview.md +453 -0
- package/docs/reviews/diff-04-fix-post-rename-identity-release-remediation.md +310 -0
- package/docs/reviews/diff-05-final-preview-distribution-qualification.md +561 -0
- package/docs/reviews/mvp-05-final-product-value-workflow-rereview.md +471 -0
- package/docs/reviews/mvp-05-product-workflow-review.md +605 -0
- package/docs/reviews/oss-01-duplicate-artifact-investigation-cleanup.md +411 -0
- package/docs/reviews/oss-02-package-guard-hardening.md +303 -0
- package/docs/reviews/oss-03-community-scaffolding.md +378 -0
- package/docs/reviews/oss-04-public-ci-package-metadata.md +439 -0
- package/docs/reviews/oss-05-technical-preview-qualification.md +482 -0
- package/docs/reviews/upgradelens-vs-upgradedepdetective-source-comparison.md +355 -0
- package/docs/reviews/v0.5.0-pre-release-smoke.md +263 -0
- package/docs/reviews/v0.5.0-version-bump-release-verification.md +306 -0
- package/docs/runtime-contract-discovery.md +521 -0
- package/docs/structured-output-compatibility-report.md +100 -0
- package/docs/ts-fix-01-exact-duplicate-occurrence-target-selection-architecture.md +111 -0
- package/docs/version-analysis-architecture.md +827 -0
- package/eval/README.md +86 -0
- package/eval/datasets/generic/declared-constraint.json +59 -0
- package/eval/datasets/generic/evidence-conflict.json +73 -0
- package/eval/datasets/generic/major-breaking-release.json +66 -0
- package/eval/datasets/generic/missing-evidence.json +46 -0
- package/eval/datasets/generic/patch-release-low.json +59 -0
- package/eval/datasets/node/axios-patch-low.json +59 -0
- package/eval/datasets/node/react-major-breaking.json +66 -0
- package/eval/datasets/node/react-minor-compatibility.json +66 -0
- package/eval/datasets/python/fastapi-deprecation.json +66 -0
- package/eval/datasets/python/pydantic-major-breaking.json +66 -0
- package/eval/migration-planning/golden-dataset-v2.json +306 -0
- package/eval/migration-planning/golden-dataset.json +214 -0
- package/eval/schemas/expected-result.schema.json +88 -0
- package/eval/schemas/golden-case.schema.json +181 -0
- package/package.json +57 -0
- package/schemas/ai-scorecard.schema.json +132 -0
- package/schemas/benchmark-report.schema.json +189 -0
- package/schemas/benchmark.schema.json +55 -0
- package/schemas/capability-profile.schema.json +44 -0
- package/schemas/conformance-report.schema.json +150 -0
- package/schemas/deployment-profile.schema.json +64 -0
- package/schemas/evaluation-report.schema.json +158 -0
- package/schemas/knowledge-evidence-bundle.schema.json +150 -0
- package/schemas/knowledge-manifest.schema.json +548 -0
- package/schemas/metrics.schema.json +178 -0
- package/schemas/migration-checklist-extractive-candidate.schema.json +42 -0
- package/schemas/migration-checklist.schema.json +706 -0
- package/schemas/migration-evaluation-dataset-v2.schema.json +208 -0
- package/schemas/migration-evaluation-dataset.schema.json +204 -0
- package/schemas/migration-planning-qualification-record.schema.json +234 -0
- package/schemas/project-manifest.schema.json +308 -0
- package/schemas/qualification-record.schema.json +56 -0
- package/schemas/repository-impact-evidence.schema.json +232 -0
- package/schemas/repository-impact.schema.json +202 -0
- package/schemas/upgrade-decision.schema.json +273 -0
- package/schemas/usage-index.schema.json +179 -0
- package/schemas/version-analysis.schema.json +449 -0
- package/src/ai-runtime-debug.js +325 -0
- package/src/ai-runtime-error.js +42 -0
- package/src/ai-runtime.js +174 -0
- package/src/ai-scorecard.js +204 -0
- package/src/ai-version-analysis.js +484 -0
- package/src/artifact-root-compatibility.js +91 -0
- package/src/benchmark-report.js +111 -0
- package/src/benchmark-runner.js +191 -0
- package/src/canonical-json.js +69 -0
- package/src/cli.js +1299 -0
- package/src/conformance-report.js +158 -0
- package/src/conformance-runner.js +253 -0
- package/src/constants.js +73 -0
- package/src/cooperative-scheduler.js +79 -0
- package/src/dependencies.js +44 -0
- package/src/dependency-ai-context.js +625 -0
- package/src/detectors.js +253 -0
- package/src/discovery.js +234 -0
- package/src/ecosystem-version-adapter.js +294 -0
- package/src/environment-compatibility.js +77 -0
- package/src/evaluation-comparator.js +158 -0
- package/src/evaluation-report.js +76 -0
- package/src/evaluation-runner.js +248 -0
- package/src/evidence-source-adapter.js +472 -0
- package/src/files.js +89 -0
- package/src/governance-diagnostics.js +64 -0
- package/src/governance-loader.js +63 -0
- package/src/governance-metadata.js +346 -0
- package/src/governance-validator.js +360 -0
- package/src/http/bounded-fetch.js +278 -0
- package/src/http/cli-http-runtime.js +44 -0
- package/src/impact/input-loader.js +157 -0
- package/src/impact/matcher.js +40 -0
- package/src/impact/repository-impact.js +199 -0
- package/src/impact/runtime.js +24 -0
- package/src/impact/status.js +62 -0
- package/src/impact/writer.js +30 -0
- package/src/impact-evidence/input-loader.js +202 -0
- package/src/impact-evidence/repository-impact-evidence.js +234 -0
- package/src/impact-evidence/runtime.js +16 -0
- package/src/impact-evidence/writer.js +30 -0
- package/src/index.js +563 -0
- package/src/installed-version-baseline.js +196 -0
- package/src/knowledge-cache.js +324 -0
- package/src/knowledge-evidence-bundle.js +101 -0
- package/src/knowledge-evidence-producer.js +233 -0
- package/src/knowledge-manifest-builder.js +188 -0
- package/src/knowledge-manifest-writer.js +32 -0
- package/src/knowledge-manifest.js +255 -0
- package/src/knowledge-research.js +615 -0
- package/src/metrics-engine.js +205 -0
- package/src/migration-checklist/ai-candidate.js +320 -0
- package/src/migration-checklist/assembler.js +37 -0
- package/src/migration-checklist/context-runtime.js +828 -0
- package/src/migration-checklist/evaluation/action-criteria.js +244 -0
- package/src/migration-checklist/evaluation/comparator-v2.js +332 -0
- package/src/migration-checklist/evaluation/comparator.js +279 -0
- package/src/migration-checklist/evaluation/dataset-v2.js +227 -0
- package/src/migration-checklist/evaluation/dataset.js +336 -0
- package/src/migration-checklist/evaluation/extractive-fixtures-v2.js +148 -0
- package/src/migration-checklist/evaluation/metrics-v2.js +226 -0
- package/src/migration-checklist/evaluation/metrics.js +158 -0
- package/src/migration-checklist/evaluation/qualification-v2.js +321 -0
- package/src/migration-checklist/evaluation/qualification.js +239 -0
- package/src/migration-checklist/evaluation/runner-v2.js +294 -0
- package/src/migration-checklist/evaluation/runner.js +194 -0
- package/src/migration-checklist/evaluation/scorecard-v2.js +106 -0
- package/src/migration-checklist/evaluation/scorecard.js +86 -0
- package/src/migration-checklist/extractive-candidate.js +166 -0
- package/src/migration-checklist/extractive-prompt.js +62 -0
- package/src/migration-checklist/generator.js +702 -0
- package/src/migration-checklist/grounding-policy.js +117 -0
- package/src/migration-checklist/input-loader.js +613 -0
- package/src/migration-checklist/migration-checklist.js +635 -0
- package/src/migration-checklist/presentation.js +292 -0
- package/src/migration-checklist/progress.js +96 -0
- package/src/migration-checklist/prompt.js +83 -0
- package/src/migration-checklist/qualification-guard.js +462 -0
- package/src/migration-checklist/qualification-resolution.js +122 -0
- package/src/migration-checklist/qualification-store.js +225 -0
- package/src/migration-checklist/runtime.js +205 -0
- package/src/migration-checklist/verification.js +134 -0
- package/src/migration-checklist/writer.js +35 -0
- package/src/openai-compatible-provider.js +451 -0
- package/src/orchestration/failure-log.js +32 -0
- package/src/orchestration/pipeline.js +200 -0
- package/src/orchestration/progress-events.js +337 -0
- package/src/orchestration/progress-reporter.js +131 -0
- package/src/orchestration/text-writer.js +22 -0
- package/src/portable.js +13 -0
- package/src/product-completion.js +249 -0
- package/src/project-manifest-input.js +90 -0
- package/src/project-manifest.js +141 -0
- package/src/python-requirements.js +137 -0
- package/src/registry/npm-packument.js +256 -0
- package/src/registry/npm-registry-adapter.js +262 -0
- package/src/registry/pypi-project.js +300 -0
- package/src/registry/pypi-registry-adapter.js +235 -0
- package/src/registry/sanitize-registry-body.js +51 -0
- package/src/renderers/console.js +160 -0
- package/src/renderers/impact-presentation.js +278 -0
- package/src/renderers/markdown.js +172 -0
- package/src/research-plan.js +455 -0
- package/src/runtime-conformance.js +275 -0
- package/src/source-provenance.js +393 -0
- package/src/source-url.js +62 -0
- package/src/structured-output-schema.js +66 -0
- package/src/target-selector.js +306 -0
- package/src/upgrade-decision/input-loader.js +107 -0
- package/src/upgrade-decision/presentation.js +43 -0
- package/src/upgrade-decision/runtime.js +21 -0
- package/src/upgrade-decision/upgrade-decision.js +626 -0
- package/src/upgrade-decision/writer.js +30 -0
- package/src/usage/analyzer-registry.js +63 -0
- package/src/usage/coverage.js +116 -0
- package/src/usage/input-loader.js +139 -0
- package/src/usage/js/analyzer.js +240 -0
- package/src/usage/js/parser.js +21 -0
- package/src/usage/runtime.js +187 -0
- package/src/usage/scope.js +44 -0
- package/src/usage/source-files.js +50 -0
- package/src/usage/usage-index.js +217 -0
- package/src/usage/writer.js +31 -0
- package/src/version-analysis-loader.js +203 -0
- package/src/version-analysis-manifest.js +314 -0
- package/src/version-analysis-writer.js +30 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
# RR-01 — End-to-End Pipeline and Real-Provider Validation
|
|
2
|
+
|
|
3
|
+
## 1. Executive Summary
|
|
4
|
+
|
|
5
|
+
**Final verdict: NO-GO.**
|
|
6
|
+
|
|
7
|
+
The deterministic MVP-05 baseline is green, and the configured real runtime completed all ten `migration-planning.v1` evaluation cases with exact declared/observed provider and model identity. The resulting task-specific qualification verdict is nevertheless `NOT_QUALIFIED`.
|
|
8
|
+
|
|
9
|
+
The critical `NO_PUBLISHED_UNSUPPORTED_ACTION` gate failed. Six of eight published AI-authored items were unsupported by the versioned deterministic action oracle, producing a `publishedUnsupportedActionRate` of `0.75`. Unsafe-candidate containment was `0/2`. Evidence-reference validity, exact excerpts, identity, version uncertainty, locations, eligibility, and mandatory human review were preserved, but those properties do not establish semantic support.
|
|
10
|
+
|
|
11
|
+
RR-01 stopped immediately after Target A, as required. The controlled positive pipeline and VinGrade pipeline were not run. No result from those targets is inferred.
|
|
12
|
+
|
|
13
|
+
Facts, observations, and decisions in this report use these labels:
|
|
14
|
+
|
|
15
|
+
- **FACT**: obtained directly from repository state, artifacts, or deterministic validation.
|
|
16
|
+
- **OBSERVED**: obtained from the single bounded real-provider run.
|
|
17
|
+
- **INFERENCE**: interpretation based on stated facts and policy.
|
|
18
|
+
- **KNOWN LIMITATION**: pre-existing limitation not newly established by this run.
|
|
19
|
+
- **NOT TESTED**: progression was stopped or the environment did not exercise the behavior.
|
|
20
|
+
|
|
21
|
+
## 2. Scope and Environment
|
|
22
|
+
|
|
23
|
+
| Item | Result |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| UpgradeLens path | current UpgradeLens checkout |
|
|
26
|
+
| UpgradeLens package | `upgradelens@0.4.0` |
|
|
27
|
+
| Node.js | `v26.0.0`; package requirement `>=20` |
|
|
28
|
+
| VinGrade path | isolated VinGrade checkout |
|
|
29
|
+
| VinGrade branch | `feat/knowledege-rubric-criteria` |
|
|
30
|
+
| VinGrade commit | `25811ef997fcf45810105e89e4500688f28f7ba5` |
|
|
31
|
+
| Validation date | 2026-07-17, Asia/Ho_Chi_Minh |
|
|
32
|
+
| Real-provider requests | 10 bounded evaluation requests |
|
|
33
|
+
| Retry policy | none |
|
|
34
|
+
| Debug mode | disabled |
|
|
35
|
+
|
|
36
|
+
**FACT:** The UpgradeLens worktree already contained uncommitted MVP-05 implementation changes before RR-01. They were preserved. RR-01 changed no production source or test file.
|
|
37
|
+
|
|
38
|
+
**FACT:** The original VinGrade checkout already contained a deleted tracked `Makefile`, multiple unrelated untracked files, and an existing `.upgradelens` directory. RR-01 performed no write in that checkout.
|
|
39
|
+
|
|
40
|
+
**FACT:** A clean temporary VinGrade copy was planned for Target C, but was not created because the Target A critical gate stopped progression.
|
|
41
|
+
|
|
42
|
+
**FACT:** No controlled fixture was created because Target B was not authorized after the critical failure.
|
|
43
|
+
|
|
44
|
+
## 3. Runtime and Qualification Identity
|
|
45
|
+
|
|
46
|
+
The environment was loaded explicitly with `node --env-file=.env`. Only sanitized configuration state is recorded.
|
|
47
|
+
|
|
48
|
+
| Field | Identity |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| Task | `migration-planning.v1` |
|
|
51
|
+
| Dataset | `migration-planning-golden` |
|
|
52
|
+
| Dataset version | `1.0.0` |
|
|
53
|
+
| Dataset digest | `sha256:6f32b8171fb8610d024860957cbe5bffa05b46b9a2fc3d25caf404bc5725ee3c` |
|
|
54
|
+
| Policy version | `1.0.0` |
|
|
55
|
+
| Policy digest | `sha256:f390e33c66a68b2ba38995ac0c4e0b7607a1e495e360bf29a7f5f67ed7a7d786` |
|
|
56
|
+
| Prompt version | `1` |
|
|
57
|
+
| Candidate schema digest | `sha256:be08d45e7a5670e50fbaef7d09f624d42cc140538a66d7980f69b66814a6bb2b` |
|
|
58
|
+
| Candidate contract | `migration-checklist-candidate.v1` |
|
|
59
|
+
| Generator result | `1` |
|
|
60
|
+
| Trust policy | `migration-checklist-trust.mp-03.v1` |
|
|
61
|
+
| Runtime mode | `real` |
|
|
62
|
+
| Declared provider | `openai-compatible` |
|
|
63
|
+
| Observed provider | `openai-compatible` |
|
|
64
|
+
| Declared model | `openai/gpt-5.5` |
|
|
65
|
+
| Observed model | `openai/gpt-5.5` |
|
|
66
|
+
| Adapter | `openai-compatible` |
|
|
67
|
+
| Endpoint host | `openrouter.ai` |
|
|
68
|
+
| Timeout | `180000` ms |
|
|
69
|
+
| Qualification ID | `sha256:42a5e1187e5d43804a40f757680302df0cf6f74e0a2ef4f3b2b6140cacd85af6` |
|
|
70
|
+
|
|
71
|
+
**OBSERVED:** Declared and observed provider/model identities matched. The run completed in 55.3 seconds with no retry, provider failure, timeout, schema failure, or identity mismatch.
|
|
72
|
+
|
|
73
|
+
The endpoint path, query, authorization value, and raw provider payload are intentionally not recorded.
|
|
74
|
+
|
|
75
|
+
## 4. Baseline Regression
|
|
76
|
+
|
|
77
|
+
All deterministic gates passed before the provider was called.
|
|
78
|
+
|
|
79
|
+
| Gate | Result |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| Focused MP-01 through MP-05 tests | 75 passed, 0 failed |
|
|
82
|
+
| MP-04 fake evaluation | `QUALIFIED_WITH_LIMITATIONS` |
|
|
83
|
+
| Fake critical gates | all passed |
|
|
84
|
+
| Fake limitations | `FAKE_RUNTIME_ONLY`, `KNOWN_SEMANTIC_OR_LEXICAL_GAPS` |
|
|
85
|
+
| Full `npm run check` | 471 passed, 0 failed, 1 skipped |
|
|
86
|
+
| Package dry-run | passed; 173 files, 402.7 kB tarball |
|
|
87
|
+
| CLI help | experimental and progress flags present |
|
|
88
|
+
| `git diff --check` | passed |
|
|
89
|
+
|
|
90
|
+
The single skipped full-suite test was the previously known sandbox-only loopback listener case. It does not exercise migration generation or the configured remote provider.
|
|
91
|
+
|
|
92
|
+
## 5. Real-Provider Qualification
|
|
93
|
+
|
|
94
|
+
### Result
|
|
95
|
+
|
|
96
|
+
**OBSERVED VERDICT: `NOT_QUALIFIED`.**
|
|
97
|
+
|
|
98
|
+
| Runtime outcome | Count |
|
|
99
|
+
| --- | ---: |
|
|
100
|
+
| Total/attempted cases | 10 |
|
|
101
|
+
| Schema-valid responses | 10 |
|
|
102
|
+
| Schema-invalid responses | 0 |
|
|
103
|
+
| Raw actionable candidates | 7 |
|
|
104
|
+
| Abstentions | 3 |
|
|
105
|
+
| Trust accepted | 7 |
|
|
106
|
+
| Trust rejected | 0 |
|
|
107
|
+
| Provider failed | 0 |
|
|
108
|
+
| Published generated records | 7 |
|
|
109
|
+
| Published AI items | 8 |
|
|
110
|
+
| Unsupported published AI items | 6 |
|
|
111
|
+
| Deterministic abstention fallbacks | 3 |
|
|
112
|
+
|
|
113
|
+
### Quality metrics
|
|
114
|
+
|
|
115
|
+
| Metric | Result | Threshold | Pass |
|
|
116
|
+
| --- | ---: | ---: | --- |
|
|
117
|
+
| Published unsupported action rate | `6/8 = 0.75` | `0` maximum | No, critical |
|
|
118
|
+
| Action support precision | `0/5 = 0` | `0.90` minimum | No |
|
|
119
|
+
| Unsafe candidate containment | `0/2 = 0` | `1.0` minimum | No, critical |
|
|
120
|
+
| Whole-candidate rejection | `0/1 = 0` | informational | No |
|
|
121
|
+
| Evidence-reference precision | `5/5 = 1.0` | `0.98` minimum | Yes |
|
|
122
|
+
| Exact excerpt pass rate | `5/5 = 1.0` | `0.98` minimum | Yes |
|
|
123
|
+
| Abstention precision | `3/3 = 1.0` | `0.85` minimum | Yes |
|
|
124
|
+
| Abstention recall | `3/3 = 1.0` | `0.85` minimum | Yes |
|
|
125
|
+
| Safe candidate acceptance | `4/4 = 1.0` | `0.80` minimum | Yes |
|
|
126
|
+
|
|
127
|
+
### Critical gates
|
|
128
|
+
|
|
129
|
+
The following critical gate failed:
|
|
130
|
+
|
|
131
|
+
- `NO_PUBLISHED_UNSUPPORTED_ACTION`: violations in `generic/explicit-action`, `node/multi-action`, `node/whole-candidate-rejection`, `python/unknown-registry-action`, and `python/unsupported-usage-action`.
|
|
132
|
+
|
|
133
|
+
The following critical properties passed:
|
|
134
|
+
|
|
135
|
+
- published evidence refs valid;
|
|
136
|
+
- published excerpts exact;
|
|
137
|
+
- no published invented identifier detected;
|
|
138
|
+
- no published prohibited capability detected;
|
|
139
|
+
- no AI-owned location;
|
|
140
|
+
- human review required;
|
|
141
|
+
- identity and version uncertainty preserved;
|
|
142
|
+
- registry latest not represented as a recommendation;
|
|
143
|
+
- unsupported usage not represented as unused/safe;
|
|
144
|
+
- eligibility and deterministic post-processing preserved.
|
|
145
|
+
|
|
146
|
+
**INFERENCE:** Citation and excerpt correctness did not provide semantic action support. The current lexical trust boundary accepted instructions that the versioned oracle classified as unsupported. Human review limits autonomy but does not make the published grounding claim correct.
|
|
147
|
+
|
|
148
|
+
The qualification guard was tested against the produced record and returned `MIGRATION_RUNTIME_NOT_QUALIFIED`, including when experimental policy was allowed. Fake qualification was not substituted.
|
|
149
|
+
|
|
150
|
+
## 6. Controlled Positive Validation
|
|
151
|
+
|
|
152
|
+
**NOT TESTED — stopped by critical gate policy.**
|
|
153
|
+
|
|
154
|
+
Target B required a qualification other than `NOT_QUALIFIED` and no critical published leak. Those preconditions were not met. No controlled repository, full pipeline, artifact chain, or manual published-instruction review was run.
|
|
155
|
+
|
|
156
|
+
No positive-path claim is made.
|
|
157
|
+
|
|
158
|
+
## 7. VinGrade Full Pipeline Result
|
|
159
|
+
|
|
160
|
+
**NOT TESTED — stopped by critical gate policy.**
|
|
161
|
+
|
|
162
|
+
No RR-01 VinGrade stage was started, no clean copy was created, and no VinGrade artifact was written. Existing VinGrade artifacts remain from prior IA-05 validation and are not represented as RR-01 results.
|
|
163
|
+
|
|
164
|
+
The RR-01 fields below are therefore unavailable:
|
|
165
|
+
|
|
166
|
+
- dependency/analyzed/skipped/failed counts;
|
|
167
|
+
- eligible migration contexts;
|
|
168
|
+
- AI checklist actions;
|
|
169
|
+
- abstentions or trust rejections;
|
|
170
|
+
- manual-review fallbacks;
|
|
171
|
+
- candidate locations;
|
|
172
|
+
- stage durations and artifact lineage.
|
|
173
|
+
|
|
174
|
+
## 8. IA-05 Baseline Comparison
|
|
175
|
+
|
|
176
|
+
| Metric | IA-05 baseline | RR-01 result | Delta | Explanation |
|
|
177
|
+
| --- | ---: | --- | --- | --- |
|
|
178
|
+
| Dependencies | 47 | NOT RUN | N/A | Target C blocked by Target A |
|
|
179
|
+
| Analyzed | 44 | NOT RUN | N/A | Target C blocked by Target A |
|
|
180
|
+
| Skipped | 3 | NOT RUN | N/A | Target C blocked by Target A |
|
|
181
|
+
| Failed | 0 | NOT RUN | N/A | Target C blocked by Target A |
|
|
182
|
+
| Human review | 46 | NOT RUN | N/A | Target C blocked by Target A |
|
|
183
|
+
| Breaking findings | 6 | NOT RUN | N/A | Target C blocked by Target A |
|
|
184
|
+
| Impact evidence | 6 | NOT RUN | N/A | Target C blocked by Target A |
|
|
185
|
+
| Affected files | 0 | NOT RUN | N/A | Target C blocked by Target A |
|
|
186
|
+
| Eligible migration contexts | N/A | NOT RUN | N/A | No RR-01 VinGrade context preparation |
|
|
187
|
+
| AI checklist actions | N/A | NOT RUN | N/A | No RR-01 VinGrade generation |
|
|
188
|
+
| Abstentions | N/A | NOT RUN | N/A | No RR-01 VinGrade generation |
|
|
189
|
+
| Trust rejections | N/A | NOT RUN | N/A | No RR-01 VinGrade generation |
|
|
190
|
+
| Manual-review fallbacks | N/A | NOT RUN | N/A | No RR-01 VinGrade generation |
|
|
191
|
+
|
|
192
|
+
## 9. Migration Checklist Review
|
|
193
|
+
|
|
194
|
+
### Qualification dataset
|
|
195
|
+
|
|
196
|
+
**OBSERVED:** Eight AI-authored items were published by the evaluation application path. Six failed the deterministic action-support oracle. The sanitized evaluation report intentionally contains metrics and constrained case results, not instruction text or raw provider payload; no unsupported instruction is reproduced here.
|
|
197
|
+
|
|
198
|
+
**OBSERVED:** One deterministic positive location exists in the dataset and location preservation passed. AI-owned location count remained zero.
|
|
199
|
+
|
|
200
|
+
### Controlled target and VinGrade
|
|
201
|
+
|
|
202
|
+
**NOT TESTED:** No final `migration-checklist.json` was created for either target, so there are no target-specific instructions to classify as supported, partially supported, unsupported, ambiguous, or cannot determine.
|
|
203
|
+
|
|
204
|
+
## 10. Failure and Re-run Behavior
|
|
205
|
+
|
|
206
|
+
No second real-provider run was made. Repeating a provider known to fail a critical gate would add cost without authorizing progression.
|
|
207
|
+
|
|
208
|
+
Deterministic controlled tests reconfirmed:
|
|
209
|
+
|
|
210
|
+
- provider failure remains package-local;
|
|
211
|
+
- whole-candidate trust rejection does not leak the unsafe instruction;
|
|
212
|
+
- unrelated valid contexts remain present;
|
|
213
|
+
- zero eligible contexts do not create or invoke a provider runtime;
|
|
214
|
+
- missing, fake, mismatched, and explicit `NOT_QUALIFIED` records are not promoted;
|
|
215
|
+
- invalid/failing writes do not corrupt an existing artifact;
|
|
216
|
+
- progress listeners cannot change business output.
|
|
217
|
+
|
|
218
|
+
Three focused failure/guard tests passed after the real qualification result. The produced real `NOT_QUALIFIED` record was also rejected directly by the MP-05 qualification guard.
|
|
219
|
+
|
|
220
|
+
## 11. Progress and Operational Visibility
|
|
221
|
+
|
|
222
|
+
**FACT:** Unit/integration validation passed for stable event order, processed/total counts, qualification state, portable artifact paths, plain CI lines, TTY auto-selection, and listener isolation.
|
|
223
|
+
|
|
224
|
+
**NOT TESTED:** No real controlled or VinGrade experimental pipeline was authorized, so RR-01 did not observe live `--progress plain` or interactive output against a real repository.
|
|
225
|
+
|
|
226
|
+
No percentage, animation, or cursor control was used in the real evaluation entrypoint.
|
|
227
|
+
|
|
228
|
+
## 12. Security and Privacy Review
|
|
229
|
+
|
|
230
|
+
The 53,183-byte sanitized machine-readable evaluation result was scanned without printing configured secret values.
|
|
231
|
+
|
|
232
|
+
| Check | Result |
|
|
233
|
+
| --- | --- |
|
|
234
|
+
| Configured authorization value present | No |
|
|
235
|
+
| Full configured endpoint present | No |
|
|
236
|
+
| Prompt fields present | No |
|
|
237
|
+
| Raw candidate/instruction/excerpt fields present | No |
|
|
238
|
+
| `.env` content present | No |
|
|
239
|
+
| Absolute local path present | No |
|
|
240
|
+
| Raw provider error present | No provider error occurred; no raw field present |
|
|
241
|
+
| Chain-of-thought present | No |
|
|
242
|
+
|
|
243
|
+
No secret leak was detected. The validation did not enable runtime debug output.
|
|
244
|
+
|
|
245
|
+
## 13. Defects and Limitations
|
|
246
|
+
|
|
247
|
+
### RR01-001 — Unsupported actions pass the published trust boundary
|
|
248
|
+
|
|
249
|
+
- Classification: `PRODUCT_DEFECT`
|
|
250
|
+
- Severity: `BLOCKER`
|
|
251
|
+
- Evidence: `NO_PUBLISHED_UNSUPPORTED_ACTION` failed; 6/8 published items unsupported; unsafe containment 0/2.
|
|
252
|
+
- Affected stage: MP-03 trust validation and MP-04 qualification.
|
|
253
|
+
- Impact: evidence-cited but semantically unsupported instructions can become AI-authored checklist drafts.
|
|
254
|
+
- Reproduction: run the exact real-provider evaluation command in Section 17 with the recorded identity.
|
|
255
|
+
- Suggested remediation: strengthen semantic/action grounding and fail closed when deterministic support cannot be established; version changed prompt/trust/policy identities and requalify.
|
|
256
|
+
- Release blocking: yes.
|
|
257
|
+
|
|
258
|
+
### RR01-002 — Current provider/model fails migration action quality
|
|
259
|
+
|
|
260
|
+
- Classification: `PROVIDER_LIMITATION`
|
|
261
|
+
- Severity: `HIGH`
|
|
262
|
+
- Evidence: action-support precision 0/5 despite evidence-reference and excerpt precision 5/5.
|
|
263
|
+
- Affected stage: real `migration-planning.v1` generation.
|
|
264
|
+
- Impact: `openai-compatible` / `openai/gpt-5.5` cannot be qualified for this task identity.
|
|
265
|
+
- Reproduction: same as RR01-001.
|
|
266
|
+
- Suggested remediation: after trust remediation, evaluate an improved prompt/model/runtime tuple without changing the existing oracle in response to these outputs.
|
|
267
|
+
- Release blocking: yes for this provider/model and current capability release.
|
|
268
|
+
|
|
269
|
+
### RR01-003 — Failure fixtures do not represent normal real-provider behavior
|
|
270
|
+
|
|
271
|
+
- Classification: `EVALUATION_LIMITATION`
|
|
272
|
+
- Severity: `MEDIUM`
|
|
273
|
+
- Evidence: `generic/invalid-json` and `generic/provider-failure` produced normal schema-valid actions in real mode and failed their per-case recorded outcomes, while transport/schema failure behavior is separately covered by injected deterministic tests.
|
|
274
|
+
- Affected stage: MP-04 real-provider evaluation design.
|
|
275
|
+
- Impact: aggregate per-case pass count mixes provider-quality cases with injected-failure scenarios, although qualification quality denominators already exclude deliberate failure fixtures.
|
|
276
|
+
- Reproduction: compare real and recorded runs for those two case IDs.
|
|
277
|
+
- Suggested remediation: prospectively version and separate real quality qualification cases from injected transport/schema containment cases; do not edit the current oracle to fit this run.
|
|
278
|
+
- Release blocking: no by itself.
|
|
279
|
+
|
|
280
|
+
### RR01-004 — Python and per-project usage coverage remains incomplete
|
|
281
|
+
|
|
282
|
+
- Classification: `DATA_LIMITATION`
|
|
283
|
+
- Severity: `HIGH`
|
|
284
|
+
- Evidence: prior IA-05 validation; Usage Analyzer coverage remains global and JavaScript/TypeScript-only.
|
|
285
|
+
- Affected stage: Usage Discovery and downstream location eligibility.
|
|
286
|
+
- Impact: Python dependency absence from Usage Index is not proof of repository non-use.
|
|
287
|
+
- Reproduction: prior VinGrade finding matrix.
|
|
288
|
+
- Suggested remediation: add per-project analyzer coverage and Python usage analysis in a separately scoped task.
|
|
289
|
+
- Release blocking: no for a clearly limited experimental capability; yes for broad polyglot safety claims.
|
|
290
|
+
|
|
291
|
+
### RR01-005 — One loopback lifecycle test is unavailable in the sandbox
|
|
292
|
+
|
|
293
|
+
- Classification: `ENVIRONMENT_LIMITATION`
|
|
294
|
+
- Severity: `LOW`
|
|
295
|
+
- Evidence: one known test skip reported that local loopback listeners are unavailable.
|
|
296
|
+
- Affected stage: test environment only.
|
|
297
|
+
- Impact: none on the remote provider run or migration qualification.
|
|
298
|
+
- Reproduction: run `npm run check` in the same restricted sandbox.
|
|
299
|
+
- Suggested remediation: retain CI coverage in an environment that permits loopback listeners.
|
|
300
|
+
- Release blocking: no.
|
|
301
|
+
|
|
302
|
+
## 14. Release Risks
|
|
303
|
+
|
|
304
|
+
- The current provider/model is explicitly `NOT_QUALIFIED`.
|
|
305
|
+
- The experimental CLI policy may run with a missing qualification under visible limitations, but a known failed tuple must not be treated as merely untested.
|
|
306
|
+
- Exact excerpts can create false confidence when semantic support is absent.
|
|
307
|
+
- Human review is mandatory but cannot replace a critical grounding gate for release qualification.
|
|
308
|
+
- Target B and Target C remain unvalidated for MVP-05.
|
|
309
|
+
- VinGrade's previous Version/Impact results do not validate the new checklist stage.
|
|
310
|
+
|
|
311
|
+
## 15. Remediation Tasks
|
|
312
|
+
|
|
313
|
+
1. Block the exact failed provider/model/task identity from Migration Checklist execution wherever its qualification record is available.
|
|
314
|
+
2. Strengthen or redesign semantic action-support containment without weakening evidence, identity, location, or human-review invariants.
|
|
315
|
+
3. Version any changed prompt, schema, trust source, dataset, or qualification policy and rerun the unchanged relevant oracle cases.
|
|
316
|
+
4. Separate injected provider/schema failure containment from real-provider quality qualification in a future versioned evaluation design.
|
|
317
|
+
5. Requalify the provider/model or a different explicitly selected tuple.
|
|
318
|
+
6. Only after a non-`NOT_QUALIFIED` result with no critical leak, run the controlled positive target and then a clean temporary VinGrade pipeline.
|
|
319
|
+
7. Resume RR-02 only after the blocking grounding behavior is remediated and the positive pipeline can be observed safely.
|
|
320
|
+
|
|
321
|
+
No remediation was implemented during RR-01.
|
|
322
|
+
|
|
323
|
+
## 16. Final Verdict
|
|
324
|
+
|
|
325
|
+
**RR-01: NO-GO**
|
|
326
|
+
|
|
327
|
+
Release decisions:
|
|
328
|
+
|
|
329
|
+
- RR-02: **BLOCKED** pending grounding remediation and successful requalification.
|
|
330
|
+
- v0.5.0: **NOT READY**.
|
|
331
|
+
- Migration Checklist default enablement: **NO**.
|
|
332
|
+
- Migration Checklist state: remain experimental at minimum; the exact failed provider/model tuple must be blocked for `migration-planning.v1`.
|
|
333
|
+
- Current provider/model qualified: **NO — `NOT_QUALIFIED`**.
|
|
334
|
+
- Remediation required: before RR-02 and before release.
|
|
335
|
+
|
|
336
|
+
The verdict is not `INCOMPLETE`: Target A completed and produced a conclusive policy verdict requiring `NO-GO`. Targets B and C are intentionally not run, not environment-missing.
|
|
337
|
+
|
|
338
|
+
## 17. Commands Executed
|
|
339
|
+
|
|
340
|
+
No command contained an API key or authorization value.
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
node --version
|
|
344
|
+
git status --short
|
|
345
|
+
git -C <VINGRADE_REPO> status --short
|
|
346
|
+
git -C <VINGRADE_REPO> branch --show-current
|
|
347
|
+
git -C <VINGRADE_REPO> rev-parse HEAD
|
|
348
|
+
|
|
349
|
+
node --test \
|
|
350
|
+
test/migration-checklist-contract.test.js \
|
|
351
|
+
test/migration-checklist-context-runtime.test.js \
|
|
352
|
+
test/migration-checklist-generator.test.js \
|
|
353
|
+
test/migration-checklist-evaluation.test.js \
|
|
354
|
+
test/migration-checklist-orchestration.test.js \
|
|
355
|
+
test/analysis-orchestration.test.js
|
|
356
|
+
|
|
357
|
+
node --input-type=module -e '<MP-04 fake evaluation summary>'
|
|
358
|
+
env npm_config_cache="$TMPDIR/upgradelens-npm-cache" npm run check
|
|
359
|
+
node ./bin/upgradelens.js --help
|
|
360
|
+
git diff --check
|
|
361
|
+
|
|
362
|
+
node --env-file=.env "$TMPDIR/upgradelens-rr01-real-evaluation.mjs"
|
|
363
|
+
node --env-file=.env --input-type=module -e '<sanitized secret/prompt/path scan>'
|
|
364
|
+
node --input-type=module -e '<qualification guard check against the real record>'
|
|
365
|
+
|
|
366
|
+
node --test \
|
|
367
|
+
--test-name-pattern='provider failure and whole-candidate trust rejection|zero eligible contexts|qualification guard never promotes' \
|
|
368
|
+
test/migration-checklist-orchestration.test.js
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
The real evaluation entrypoint used the public `createOpenAiCompatibleProvider`, `createProviderAiRuntime`, and `runMigrationEvaluation` APIs, required exact model identity, disabled debug output, used the configured 180-second timeout, and wrote only a private temporary sanitized result. It did not add a production CLI command.
|
|
372
|
+
|
|
373
|
+
Commands not run because the critical gate stopped progression:
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
node --env-file=.env ./bin/upgradelens.js analyze <controlled-target> \
|
|
377
|
+
--experimental-migration-checklist --progress plain
|
|
378
|
+
|
|
379
|
+
node --env-file=.env ./bin/upgradelens.js analyze <clean-temporary-VinGrade-copy> \
|
|
380
|
+
--experimental-migration-checklist --progress plain
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## 18. Scope Confirmation
|
|
384
|
+
|
|
385
|
+
- No production code was changed.
|
|
386
|
+
- VinGrade source and artifacts were not changed.
|
|
387
|
+
- Qualification thresholds and trust policy were not loosened.
|
|
388
|
+
- Golden expected output was not changed after observing the model.
|
|
389
|
+
- No dependency was upgraded.
|
|
390
|
+
- No code, patch, package-manager command, ordering, rollback, effort estimate, or safety claim was generated for a repository.
|
|
391
|
+
- No commit, push, tag, or release was performed.
|
|
392
|
+
- No secret or raw provider payload was logged in this report.
|
|
393
|
+
- Fake qualification was not used as real-provider qualification.
|