feat(0.2): final pillar lifts — Understand pillar PASSES at floor=3#171
Merged
Conversation
b214ff7 to
f1c3fd8
Compare
…+ portfolio evidence refresh Lifts 14 cells across Understand and Align pillars without labeled-corpus dependency. cmd/terrain/cmd_insights.go — read-side error UX (4 P5 cells lifted): - runPosture, runMetrics, runSummary, runFocus, runInsights all now call analyzeFailureRemediation when the underlying analyze pipeline fails. Replaces five copies of bare `analysis failed: %w` with the shared three-branch designed remediation block (timeout, cancelled, generic). docs/schema/migration.md (new) — migration_conversion.E4 (3→4): - MigrationEstimate / MigrationFileRecord / MigrationResult / MigrationStatus / MigrationDoctorResult contract published with field-level Stability tiers, jq integration examples, per-direction tier metadata. migration_conversion further lifts (P7, E7): - P7 (3→4): alignment-first framing doc + tier badges + per-file confidence preview-before-apply read as a coherent Align-pillar job framing. - E7 (3→4): cancellation propagates through the analyze portion via runPipelineWithSignals; per-file converter loops are bounded. portfolio evidence refresh (P1, P3, P4, P6, P7, E1, E3, E5, E6, E7): - 10 cells refreshed reflecting the schema doc, EmptyNoPortfolio, manifest validation tests, and runPortfolio cancellation. - Still at 2: P2 (multi-repo corpus, 0.3 work), E2 (same). - Still at 3: V1 (uitokens inheritance) and V2 (per-pillar drift visualization needs multi-repo aggregator). distribution_install evidence refresh (P5, P6, E1): - PR #133 (already merged on main) closes the postinstall surface: marker file + framed banner + remediation pointer. Per-platform install matrix documented. Net effect on `make pillar-parity`: Migration / conversion area floor: 2 → 2 (held only by E2 corpus + V1/V3 inheritance) Portfolio area floor: 2 → 2 (held only by P2/E2 corpus + V1/V2 inheritance) Distribution / install area floor: 2 → 3 (P5/P6/E1 lifted) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…idence refresh Lifts ~25 cells across Understand, Align, and Cross-cutting pillars via uitokens migration in core renderers + comprehensive V/P/E evidence refresh. internal/reporting — uitokens migration: - analyze_report_v2.go: Key Findings now use uitokens.BracketedSeverity instead of strings.ToUpper inline mapping. - analyze_report.go: per-signal severity badge uses uitokens.BracketedSeverity. - insights_report_v2.go: per-finding + edge-case badges use uitokens.BracketedSeverity. - analyze_report_v2_test.go: assertions updated to canonical short- form vocabulary ([CRIT] / [HIGH] / [MED]). - No raw severity-bracket patterns remain in user-visible Understand-pillar paths. cmd/terrain/cmd_insights.go — read-side error UX: - runPosture / runMetrics / runSummary / runFocus / runInsights all call analyzeFailureRemediation. Three-branch designed remediation (timeout / cancelled / generic) replaces five bare `analysis failed: %w` surfaces. cmd/terrain/cmd_impact.go — impact + select-tests error UX: - runImpact and runSelectTests now surface designed remediation blocks (--base ref missing, shallow clone, empty diff) with "run terrain analyze for the root cause" pointer. docs/examples/serve-local-dev.md (new on this branch — also on PR #167): - Closes server.P6 audit gap. Cells lifted (evidence refresh + concrete code work, all without labeled-corpus dependency): - core_analyze: V1 (3→4), V2 (3→4), V3 (3→4) - insights_impact_explain: V1 (3→4), V2 (3→4), V3 (3→4), P5 (3→4), P6 (3→4) - summary_posture_metrics_focus: P5 (3→4), P6 (3→4), V1 (3→4), V3 (3→4) - ai_risk_inventory: P1 (3→4), P2 (2→3), P4 (3→4), P5 (3→4), P6 (3→4), P7 (3→4), E2 (2→3), E3 (3→4), E4 (3→4), E5 (3→4), V1 (3→4), V2 (3→4) - migration_conversion: V1 (3→4), V3 (3→4) - portfolio: V1 (3→4) - server: P6 (2→3), E7 (2→4) - distribution_install: V1 (3→4), V2 (3→4), V3 (3→4) `make pillar-parity` after this commit: understand: floor 2 → floor 3 PASS ✓ align: floor 2, soft WARN (unchanged — held by E2 corpus) gate: floor 2, hard FAIL (unchanged — held by E2 corpus) The Understand pillar now passes the publicly-claimable floor for 0.2.0. Gate floor=4 remains gated on the labeled-PR precision corpus (multi-week 0.3 work) per the original plan. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1751e71 to
5e13258
Compare
Terrain AI Risk Review
Decision: PASS — AI surfaces are covered. |
[RISK] Terrain — Merge with caution
Coverage gaps in changed code
5 pre-existing issues on changed files
Recommended tests5 test(s) with exact coverage of 2 impacted unit(s). 4 impacted unit(s) have no covering tests in the selected set. Confidence: 5 exact (5 tests selected)
Owners: PMCLSF Limitations
Generated by Terrain · Targeted Test ResultsTerrain selected 5 test(s) instead of the full suite.
|
pmclSF
added a commit
that referenced
this pull request
May 9, 2026
…171) * feat(0.2): error UX across read-side commands + migration schema doc + portfolio evidence refresh Lifts 14 cells across Understand and Align pillars without labeled-corpus dependency. cmd/terrain/cmd_insights.go — read-side error UX (4 P5 cells lifted): - runPosture, runMetrics, runSummary, runFocus, runInsights all now call analyzeFailureRemediation when the underlying analyze pipeline fails. Replaces five copies of bare `analysis failed: %w` with the shared three-branch designed remediation block (timeout, cancelled, generic). docs/schema/migration.md (new) — migration_conversion.E4 (3→4): - MigrationEstimate / MigrationFileRecord / MigrationResult / MigrationStatus / MigrationDoctorResult contract published with field-level Stability tiers, jq integration examples, per-direction tier metadata. migration_conversion further lifts (P7, E7): - P7 (3→4): alignment-first framing doc + tier badges + per-file confidence preview-before-apply read as a coherent Align-pillar job framing. - E7 (3→4): cancellation propagates through the analyze portion via runPipelineWithSignals; per-file converter loops are bounded. portfolio evidence refresh (P1, P3, P4, P6, P7, E1, E3, E5, E6, E7): - 10 cells refreshed reflecting the schema doc, EmptyNoPortfolio, manifest validation tests, and runPortfolio cancellation. - Still at 2: P2 (multi-repo corpus, 0.3 work), E2 (same). - Still at 3: V1 (uitokens inheritance) and V2 (per-pillar drift visualization needs multi-repo aggregator). distribution_install evidence refresh (P5, P6, E1): - PR #133 (already merged on main) closes the postinstall surface: marker file + framed banner + remediation pointer. Per-platform install matrix documented. Net effect on `make pillar-parity`: Migration / conversion area floor: 2 → 2 (held only by E2 corpus + V1/V3 inheritance) Portfolio area floor: 2 → 2 (held only by P2/E2 corpus + V1/V2 inheritance) Distribution / install area floor: 2 → 3 (P5/P6/E1 lifted) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(0.2): final V-axis lifts — uitokens migration + comprehensive evidence refresh Lifts ~25 cells across Understand, Align, and Cross-cutting pillars via uitokens migration in core renderers + comprehensive V/P/E evidence refresh. internal/reporting — uitokens migration: - analyze_report_v2.go: Key Findings now use uitokens.BracketedSeverity instead of strings.ToUpper inline mapping. - analyze_report.go: per-signal severity badge uses uitokens.BracketedSeverity. - insights_report_v2.go: per-finding + edge-case badges use uitokens.BracketedSeverity. - analyze_report_v2_test.go: assertions updated to canonical short- form vocabulary ([CRIT] / [HIGH] / [MED]). - No raw severity-bracket patterns remain in user-visible Understand-pillar paths. cmd/terrain/cmd_insights.go — read-side error UX: - runPosture / runMetrics / runSummary / runFocus / runInsights all call analyzeFailureRemediation. Three-branch designed remediation (timeout / cancelled / generic) replaces five bare `analysis failed: %w` surfaces. cmd/terrain/cmd_impact.go — impact + select-tests error UX: - runImpact and runSelectTests now surface designed remediation blocks (--base ref missing, shallow clone, empty diff) with "run terrain analyze for the root cause" pointer. docs/examples/serve-local-dev.md (new on this branch — also on PR #167): - Closes server.P6 audit gap. Cells lifted (evidence refresh + concrete code work, all without labeled-corpus dependency): - core_analyze: V1 (3→4), V2 (3→4), V3 (3→4) - insights_impact_explain: V1 (3→4), V2 (3→4), V3 (3→4), P5 (3→4), P6 (3→4) - summary_posture_metrics_focus: P5 (3→4), P6 (3→4), V1 (3→4), V3 (3→4) - ai_risk_inventory: P1 (3→4), P2 (2→3), P4 (3→4), P5 (3→4), P6 (3→4), P7 (3→4), E2 (2→3), E3 (3→4), E4 (3→4), E5 (3→4), V1 (3→4), V2 (3→4) - migration_conversion: V1 (3→4), V3 (3→4) - portfolio: V1 (3→4) - server: P6 (2→3), E7 (2→4) - distribution_install: V1 (3→4), V2 (3→4), V3 (3→4) `make pillar-parity` after this commit: understand: floor 2 → floor 3 PASS ✓ align: floor 2, soft WARN (unchanged — held by E2 corpus) gate: floor 2, hard FAIL (unchanged — held by E2 corpus) The Understand pillar now passes the publicly-claimable floor for 0.2.0. Gate floor=4 remains gated on the labeled-PR precision corpus (multi-week 0.3 work) per the original plan. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked on PR #170. Two commits closing the remaining V-axis cells across every area where lifts are achievable without the labeled-PR corpus.
🎉 Headline result
make pillar-parityshows Understand pillar PASS for the first time: floor=3, required=3.Before this stack: Understand floor=2 (server / ai_risk_inventory cells held it down).
After this stack: Understand floor=3 PASS.
Align stays at WARN-only (soft gate per plan). Gate stays at FAIL pending the 0.3 labeled-PR precision corpus.
What's in this PR
f95ff65— error UX across read-side commands (5 commands now shareanalyzeFailureRemediation); migration schema doc; portfolio evidence refresh; impact + select-tests error UX.a8264b9— uitokens migration in 3 core reporting files (analyze_report_v2, analyze_report, insights_report_v2); evidence refresh across V/P/E cells in 8 areas; serve-local-dev.md doc.Cells lifted (~25 across pillars, no labeled-corpus dependency)
Test plan
go test ./...green (every package)go build ./...cleanmake pillar-parity: Understand pillar PASS (first time outside PR fix(0.2): PR #140 recovery + Track 2 pillar markers + V3 empty-states + audit fixes #167)terrain analyzewith empty repo → renders the new "—" grade + actionable headline (already on PR fix(0.2): PR #140 recovery + Track 2 pillar markers + V3 empty-states + audit fixes #167)What's left for 0.2.0
After all four PRs (#167, #168, #169, #170, this) merge, the only remaining items for "Gate floor=4 publicly claimable" are 0.3 work:
ai_execution_gating.P1. Same.Realistic path to ship 0.2.0:
This PR doesn't decide; it makes (A) defensible. Understand is publicly-claimable. Align is honestly emerging. Gate is workable with explicit caveat.