docs: bring the roadmap and competitive analysis in line with what shipped - #209
Conversation
The Now/next entry for fix-verification adoption still described the server route as the bottleneck holding up both GUIs. It has not been for some time: the route executes through executeSecurityScan, the web UI renders a coverage badge where the hand-written caveat used to be, the TUI and both CLIs report coverage, and the Action re-derives the record on the runner and posts it beside the diff. Two surfaces genuinely remain, and neither had an issue to point at, which is the state the file itself says issues are for. Both now do: the VS Code extension shows findings without saying what the scan covered (#204), and headless runs emit no coverage or fix record at all (#205) — the surface with no human present to notice the omission. The plan document gets a status banner rather than a rewrite. Its §1 analysis is the record of what the work started from, and several of its findings are deliberately no longer true of the code; marking it history is more useful than editing it into agreement with the present. Its phase 4 note that the VS Code extension is unpublished is corrected, since that changes the payoff it was ordered by. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186VyaiQq3MTo4i4mK8P3aW
The report recommended lever B — promote the internal verification field to a portable, offline re-derivable Verified Fix Record — and it has since been built. Phases 0 through 2 of its own staging plan all landed, including the MCP exit it called the most important one. Read as written, the document still argues for work that exists. Rather than rewrite the reasoning, the original judgements stay and the outcome is marked against them: a status banner up top, per-phase landing points in §4.2, and the two follow-ups still outstanding — the public SDK export and the FEATURE_GAP archive note — marked as such instead of being quietly dropped. §1 needed more than a mark. Its finding was that the second strategic line had no P0 item scheduled at all; that mismatch is gone, and the Now/Next list it enumerated no longer matches the roadmap. Both are corrected, with the original claim kept visible so the section still reads as the assessment it was. §2 is left alone. It is a dated market snapshot and this pass did not re-research it, which the banner says outright. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186VyaiQq3MTo4i4mK8P3aW
|
Web end-to-end is red here, and it is not this PR's failure. This PR changes three Markdown files and nothing else. The same check is red on the base branch — Every other check passes on both: Root cause is No fix for it exists yet to port, so I am not carrying one into a docs-only PR — that would widen it. Filed as #210 with the diagnosis and the two-line patch. Merging this on that basis: the failure predates the branch, is unrelated to the diff, and is tracked separately. Generated by Claude Code |
Resolves the documentation conflict this branch picked up from the docs pass merged in #209. Both sides updated the same three files with the same intent, from opposite directions: #209 corrected them to match what had shipped, and this branch ships the surface it was describing as missing. Where the two disagreed, this branch's account of its own work wins. Concretely: - ROADMAP: keep this branch's Recently-shipped and Now/next entries. The #209 bullet about the server route, both GUIs and the TUI is dropped as a subset of "Verification on every first-party surface"; its GitHub Action half is kept, since no other entry records that the Action re-derives the record on the runner. The "last two surfaces" row is gone — VS Code is one of them and lands here — leaving the harness, which nothing in this branch touches, as its own row against #205. - VERIFICATION-SURFACES-PLAN: the auto-merge left two status banners making incompatible claims about phase 4. Collapsed into one, marking all four phases landed. §6 now records what was actually delivered, including the offline verification command the original scope excluded. - COMPETITIVE-ANALYSIS: the roadmap table in §1 still pointed at #204 for VS Code coverage; replaced with the current Now/next items. #204 asked for exactly the VS Code coverage this branch implements, and it goes further with offline VFR re-derivation, so it is closed as done rather than carried. #210 (Web e2e red on main) is fixed here too — the two selector updates in tests/e2e are the same fix it proposed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186VyaiQq3MTo4i4mK8P3aW
Summary
Documentation-only. Three files had drifted behind the code in ways that misdirect planning.
ROADMAP.md— the first Now/next entry still described the server route as the bottleneck holding up both GUIs. It has not been for some time: the route executes throughexecuteSecurityScan, the web UI renders a coverage badge where the hand-written caveat used to be, the TUI and both CLIs report coverage, and the Action re-derives the record on the runner and posts it beside the diff. Two surfaces genuinely remain and neither had an issue to point at — which is the state the file itself says issues are for. Both now do: #204 (VS Code shows findings without saying what the scan covered) and #205 (headless runs emit no coverage or fix record at all — the surface with no human present to notice). Also adds two Recently-shipped entries for work that had landed unrecorded.docs/VERIFICATION-SURFACES-PLAN.md— phases 1–3 have landed, so the plan reads as describing work that exists. It gets a status banner rather than a rewrite: its §1 analysis is the record of what the work started from, and several findings are deliberately no longer true of the code, so marking it history is more useful than editing it into agreement with the present. The §6 note that the VS Code extension is unpublished is corrected, since that is what the phase was ordered by.docs/COMPETITIVE-ANALYSIS.md— the report recommended lever B (promote the internal verification field to a portable, offline re-derivable Verified Fix Record) and it was built; phases 0–2 of its own staging plan all landed, including the MCP exit it called the most important one. The original judgements stay and the outcome is marked against them, per-phase, with the two follow-ups still outstanding — the public SDK export and theFEATURE_GAP.mdarchive note — marked as outstanding rather than quietly dropped. §1 needed more than a mark: its finding was that the second strategic line had no P0 item scheduled at all, and that mismatch is gone, so it is corrected with the original claim kept visible. §2 is left alone as a dated market snapshot this pass did not re-research, which the banner says outright.Also in this session, outside the diff: #109 and #136 closed, #53 / #55 / #118 / #120 bodies corrected, and #204 – #207 opened.
Testing
No code changed, so the suite is unaffected —
npm run checkistypecheck && typecheck:gui && test, none of which reads these files (verified by grep: no test referencesROADMAP.mdor either doc). Every factual claim added was checked against the code rather than assumed:executeSecurityScan—src/server/routes/remediation.ts:2,27web/src/components/DvalinWorkspace.tsx:432,508editors/vscode/src/extension.ts:161src/harness/mcp-installcommand name —README.md:163.github/workflows/harness-interop.yml(cron: '0 6 * * 1')SECURITY_SCHEMA_VERSION = 2andSECURITY_COVERAGE_STATUSESinsrc/security/contracts.ts,src/security/fixRecord.ts,dvalin_verify_fixinsrc/mcp/server.ts:215,fix-recordI/O inaction.yml,fixRecordsinsrc/evidence/pack.tsexportsentry inpackage.jsonSecurity and AI Governance
docs/. — No behavior change; this PR only updatesdocs/to match behavior already shipped and reviewed.docs/governance/AI-CHANGE-IMPACT-ASSESSMENT.md. — Not applicable; no new model, provider, tool, or data flow.Notes
The competitive analysis is left readable as the dated report it is. The alternative — editing its reasoning into agreement with the outcome — would destroy the only interesting thing about it, which is that the call it made can now be checked against what happened.
🤖 Generated with Claude Code
https://claude.ai/code/session_0186VyaiQq3MTo4i4mK8P3aW
Generated by Claude Code