Skip to content

fix: the $ skill picker now lists the active project's skills - #6450

Closed
Brechard wants to merge 5 commits into
pingdotgg:mainfrom
Brechard:fix/workspace-scoped-skills-upstream
Closed

Brechard wants to merge 5 commits into
pingdotgg:mainfrom
Brechard:fix/workspace-scoped-skills-upstream

fix(web): key the transcript skill fallback to the thread's provider too

43d06a0
Select commit
Loading
Failed to load commit list.
MacroscopeApp / Macroscope - Effect Service Conventions succeeded Aug 13, 2026 in 1m 36s

All clear

All clear

Details

Note

Your check run agent prompt is: .macroscope/check-run-agents/effect-service-conventions.md
More information about how Check Run Agents work can be found in our Help Center.


🔍 Agent activity — reasoning, no tool calls

💭 Looking at the new workspace skills cache implementation, I'm checking whether the Effect service conventions are being followed correctly. The helper function that creates the cache is straightforward, and the CodexProvider changes appear to be using Effect.provide to wire things together, though the thought cuts off mid-examination. Continuing through the rest of the diff, I see the drivers are passing service instances explicitly, which aligns with the existing pattern of acquiring them from the closure. The ProviderRegistry uses Effect.catchCause to handle all errors including defects, which is legitimate here since the error channel is intentionally being handled. The CodexProvider also uses Effect.orElseSucceed after a timeout, which is fine. The imports look good — the new test file uses subpath imports from "effect/Effect" and workspaceSkills.ts follows the same pattern with namespace imports. Now I'm checking the workspace skills cache implementation. The makeWorkspaceSkillsCache function returns a closure that captures the cache, and since Cache.make in Effect v3 returns an Effect with no scope requirement, the returned function type should work fine with R = never and E = never. The listWorkspaceSkills lookup in ProviderRegistry uses discover with no requirements, so that checks out. I need to verify the Cause import is already present and then look at how listWorkspaceSkills is used with liveSubsRef in ProviderRegistry.… I'm checking how the drivers wire up their dependencies — specifically looking at whether ClaudeDriver properly provides the FileSystem service and where those instances come from, and similarly verifying that CodexProvider acquires the ChildProcessSpawner through the standard capability pattern.… I'm checking whether logging the cause object in annotations aligns with the guidelines about keeping error details bounded and avoiding raw payloads—looks like it does, since we're capturing the error context without dumping arbitrary defect text into the log message. Now I need to verify the namespace subpath imports across the modified files and check how ProviderRegistryShape aligns with the service interface conventions.… The PR is extending ProviderRegistry, which means the conventions about Effect services apply here. The existing ProviderRegistryShape interface is being retained in the changed scope, but since this is a feature PR rather than a refactoring effort, I need to weigh whether requiring inlining the shape and merging the Services/Layers modules is the right call given the PR's actual scope and intent.… The Claude discovery returns a readonly array of server provider skills that's never undefined, which works fine with the cache that expects it to potentially be undefined. I'm checking the imports in the client runtime state file to see if WS_METHODS is already there, and then verifying that the web app's queries file can properly import serverEnvironment from its state module — though this doesn't follow Effect conventions. There might be a convention issue in the server's WebSocket file that I need to investigate. Looking at the test file, it imports the Effect subpath namespaces correctly, and I don't see any violations with runPromise or ManagedRuntime in the web or mobile files. The test uses ProviderInstance["listWorkspaceSkills"] which is fine as an interface reference, but I'm noticing that ProviderRegistry.ProviderRegistryShape is being used in the test's type definition — the convention says to refer to inferred service interfaces as Foo["Service"] rather than keeping… I'm noticing a line number discrepancy between the grep output and the file view I looked at earlier — the view showed 92 lines but grep is reporting line 105 for the same location in ProviderRegistry.ts, likely because they're referencing different commits. It's a minor inconsistency but worth noting.…


Agent Credits: 75 credits