tw0po1nt/FsHttp.Studio
74.7
Strong · 3 October 2026
3.7k
lines of production code
F#
primary language
2
measurements over time
What this system is
FsHttp.Studio is a VS Code extension that executes F\# HTTP request scripts and renders their responses with rich, content-type-aware visualization. It employs a separate .NET companion process to handle script parsing, block execution, and request capture, communicating with the extension host via a structured protocol. The system includes a custom renderer for displaying JSON, HTML, images, and binary data, alongside comprehensive testing for both the UI and the underlying execution logic.
Features
Add engineering skills and agent configuration
This change introduces a suite of new AI agent skills under \.agents/skills/\ to guide engineering workflows. The additions include a router skill ('Ask Matt') to direct users to the appropriate workflow, and specialized skills for code review (two-axis review against standards and specs), codebase design (deep-module vocabulary and deepening strategies), domain modeling (glossary and ADR management), and bug diagnosis (structured feedback loops). It also adds safety guardrails to block dangerous git commands (push, reset, clean) via a Claude Code hook, and workflow skills for grilling designs, implementing specs, and handling context handoffs between sessions.
.agents · high confidence
FsHttp.Studio initial release with rich response rendering and companion architecture
FsHttp.Studio is a VS Code extension that runs FsHttp requests from F\# scripts and renders responses richly (images, JSON, HTML) instead of flattening them to text. It uses a companion .NET process to parse and evaluate scripts, exchanging tagged envelopes with the extension host. The extension provides a response viewer with Content-Type dispatch, a status bar, and a CodeLens for running blocks. It requires .NET 10 SDK, ships with a SHA256 checksum for verification, and enforces Simplified Technical English and American spellings via a banned-patterns check in CI.
(repo-wide) · high confidence
Introduce FsHttp.Studio extension host and companion architecture
This change introduces the core extension host (src/host) and companion process (src/companion) for the FsHttp.Studio VS Code extension. The host manages the VS Code integration, including a document-aware status bar, CodeLens providers for runnable blocks, and a response viewer with copy buttons and status lines. It communicates with a separate companion process via a length-prefixed binary frame channel over stdin/stdout. The companion handles request routing (locate, run, hello) and block execution, reporting refusal codes and parse failures back to the host. The host also validates the .NET SDK version required by the companion and guides users to install it if missing.
src/host · high confidence
Introduce companion-side block classification, execution, and request capture
The Companion now classifies F\# script blocks into twelve specific refusal categories (such as loop bodies, if-branches, or inner bindings) and determines how to invoke them via two distinct routes (injected names or existing bindings). When a block is executed, the companion captures the HTTP request body up to 1MB, handling streamed or unknown-length bodies gracefully without altering the wire send, and reports detailed refusal reasons or runtime errors (including timeout specifics) back to the host.
Companion · high confidence
Introduce webview renderer with clipboard copy and status timing
The src/webview directory now contains the F\#-based webview implementation (Dom.fs, Main.fs, Smoke.fs) that renders HTTP response envelopes in the panel. Users can now copy response content to the clipboard via buttons that provide visual feedback (flashing "Copied" or "Copy failed"). The status line displays both request and total timing numbers, and runs that are refused are surfaced as a notice rather than an error. A smoke test suite validates the rendering of various content types (images, JSON, HTML, text, binary) and the copy functionality.
src/webview · high confidence
New scripts for enforcing documentation standards and managing skill symlinks
Added \scripts/check-banned-patterns.sh\ to automatically scan Markdown and F\# source files for prohibited text patterns defined in \.banned-patterns\, ensuring compliance with prose rules by stripping code blocks and comments before checking. Also added \scripts/symlink-skills.sh\ to manage symbolic links from \.agents/skills\ to \.claude/skills\, handling existing links, conflicts, and providing a summary of linked, skipped, or failed items.
scripts · high confidence
Renderer introduces custom JSON parsing and structured response display
The Renderer now includes a custom F\#-based JSON parser (Json.fs) that preserves original number formatting to prevent precision drift, and a core rendering engine (Renderer.fs) that structures HTTP responses into distinct sections. Users will see a dedicated Request section displaying the method, URL, headers, and body, alongside a status line that shows both request and total timing metrics. The engine intelligently renders response bodies as HTML (sandboxed in an iframe), images, text, or a hex dump for binary content, ensuring accurate and safe display of network traffic.
Renderer · high confidence
Behavioural changes
Enforced coding standards and quality checks via Claude Code hooks
The project now automatically enforces documentation and coding standards through a set of new Claude Code hooks configured in .claude/settings.json. When writing Markdown or F\# files, the agent is reminded to apply Simplified Technical English (STE) rules and adhere to F\# house rules, while a banned-patterns check actively denies edits that violate prohibited text patterns. Additionally, when creating or editing pull requests that modify the user interface, the agent is prompted to include a screenshot, ensuring visual changes are properly documented before submission.
.claude · high confidence
Introduce companion process, protocol types, and refusal handling for F\# scripts
The extension now communicates with a separate companion process to locate and run F\# script blocks. This change introduces the core host modules: \Companion.fs\ manages the companion lifecycle and sends locate/run requests; \Protocol.fs\ defines the shared types for the wire (including \RunResult\, \BlockRange\, and refusal codes); \Refusals.fs\ provides user-facing explanations for why a block cannot be run (e.g., inside a loop or if branch); and \RunCommand.fs\ registers the CodeLens commands to trigger runs and display results or refusals in the response viewer.
Extension · high confidence
Test coverage
Added comprehensive test suite for the companion's block location, execution, and request handling; Added unit tests for protocol parsing and refusal handling logic; Added unit tests for the renderer's response body dispatching logic; New UI test harness and page-object bindings; UI test suite for FsHttp.Studio.
Dependencies
FsHttp.Studio v0.2.0 initial release with .NET 10 and updated tooling
The FsHttp.Studio VS Code extension is released at version 0.2.0, introducing a new companion service built on .NET 10 (with RollForward enabled) and a pinned F\# toolchain (FSharp.Compiler.Service 43.12.204, FSharp.Core 10.1.204). The extension now requires VS Code ^1.66.0 and uses esbuild ^0.28.1 for bundling. Test infrastructure has been standardized on Expecto 11.1.0 with the YoloDev.Expecto.TestSdk adapter, and UI testing relies on selenium-webdriver ^4.46.0 and vscode-extension-tester ^8.24.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 75 → 75 (-0.0)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 91 → 91 (+0.0)
- Architecture 96 → 98 (+2.6)
- Maturity 91 → 91 (-0.1)
- Readiness 64 → 65 (+1.2)
- Security 76 → 71 (-5.0)
- Performance 100 (new)
Resolved (3)
- Documentation: no installation or build instructions (README.md)
- Documentation: no project overview
- No consequences/trade-offs section; the only rationale is rejection of one alternative for another (docs/adr/0001-in-editor-webview-renderer.md)
New (11)
- Documentation: no architecture or design documentation (docs/spec/0006-ui-test-the-core-path.md)
- Documentation: no project overview (docs/spec/0006-ui-test-the-core-path.md)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- Medium vulnerability: [GHSA redacted] (package-lock.json)
- Medium vulnerability: [GHSA redacted] (package-lock.json)
- No consequences/trade-offs section; the only rationale is rejection of an alternative and the in-editor experience claim (docs/adr/0001-in-editor-webview-renderer.md)
- Outdated: Fable.Core
Architecture
- Unchanged — 0 containers · 4 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
tw0po1nt/FsHttp.Studio was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 846f7573f845884f8fb7d38bcf2ce1b580bb1f6f — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.