effect-service
Scaffold a new Effect-TS service following Maslow's Context.Tag + Layer pattern.
Skill by twlines
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/twlines-effect-service
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/effect-service
What's inside
- Skill name
effect-service- Description
- Scaffold a new Effect-TS service following Maslow's Context.Tag + Layer pattern. Use when the user wants to create a new service, add a new module to the server, or needs Effect-TS boilerplate. Invoke with /effect-service <ServiceName> [--scoped] [--deps Dep1,Dep2].
- License
- MIT
- Instructions
- 126 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Effect-TS Service Scaffolder
Generate a new service file following Maslow's established patterns. Every service in this codebase uses `Context.Tag` for dependency injection and `Layer.effect` (or `Layer.scoped` for resource-holding services) for implementation.
## Workflow
1. **Parse arguments** — service name, whether it's scoped, and its dependencies
2. **Read existing services** to match the codebase's exact style (import paths, naming conventions, semicolons, etc.)
3. **Generate the service file** at `src/services/<ServiceName>.ts`
4. **Wire into layer composition** — update `src/index.ts` to import and compose the new layer
5. **Generate test stub** at `src/__tests__/<ServiceName>.test.ts`
## Arguments
| Argument | Required | Description |
|----------|----------|-------------|
| `ServiceName` | Yes | PascalCase name (e.g., `CrossProjectConnector`) |
| `--scoped` | No | Use `Layer.scoped` with `Effect.addFinalizer` for services holding resources (DB connections, HTTP servers, child processes) |
| `--deps Dep1,Dep2` | No | Comma-separated list of service dependencies (e.g., `AppPersistence,Config`) |
| `--methods method1,method2` | No | Comma-separated list of method stubs to generate |
## Service Template (Layer.effect)
```typescript
import { Context, Effect, Layer } from "effect"
// import dependencies as needed
export interface <Name>Service {
// method stubs
}
export class <Name> extends Context.Tag("<Name>")<
<Name>,
<Name>Service
>() {}
export const <Name>Live = Layer.effect(
<Name>,
Effect.gen(function* () {
// yield* dependencies
return {
// method implementations
}
})
)
```
## Service Template (Layer.scoped)
```typescript
import { Context, Effect, Layer, Scope } from "effect"
export interface <Name>Service {
// method stubs
}
export class <Name> extends Context.Tag("<Name>")<
<Name>,
<Name>Service
>() {}
export const <Name>Live = Layer.scoped(
<Name>,
Effect.gen(function* () {
// yield* dependencies
// resource setup
yield* Effect.addFinalizer(() =>
Effect.sync(() => {
// cleanup logic
})
)
return {
// method implementations
}
})
)
```
## Style Rules
These MUST match the existing codebase exactly:
- No semicolons
- Double quotes for strings
- 2-space indentation
- Explicit return types on service interface methods using Effect types
- Always specify the error channel: `Effect.Effect<A, E>`, not just `Effect.Effect<A>`
- No barrel exports — import from specific files
- Use `unknown` instead of `any` — narrow with type guards
## Layer Composition
After generating the service, read `src/index.ts` and wire the new layer into the composition chain. Follow the existing dependency order:
```
Config
→ Persistence, Telegram, AppPersistence, Voice, ClaudeMem, SoulLoader
→ Kanban, ThinkingPartner
→ ClaudeSession
→ SessionManager
→ AppServer
```
Place the new service at the correct level based on its dependencies.
## Test Stub Template
```typescript
import { describe, it, expect } from "vitest"
describe("<Name>", () => {
it("should be implemented", () => {
expect(true).toBe(true)
})
})
```
## Before WritingFrom twlines/maslow, MIT.
More from twlines/maslow
- 0.409score
wire-feature
twlines
Scaffold and wire a full-stack feature across server, shared types, and client.
SkillDFreshness: DClaude Code +9 - 0.409score
document
twlines
Generate structured code documentation for files, services, or modules.
SkillDFreshness: DClaude Code +9 - 0.409score
maslow-audit
twlines
Run architecture, security, and code quality audits on the Maslow codebase.
SkillDFreshness: DClaude Code +9 - 0.404score
conversation-context
twlines
How to use prior decisions and daily logs before starting work
SkillDFreshness: DClaude Code +9 - 0.404score
refactor-patterns
twlines
Safe refactoring patterns for moves, renames, and extractions
SkillDFreshness: DClaude Code +9 - 0.401score
security-check
twlines
Security checklist for code changes
SkillDFreshness: DClaude Code +9 - 0.401score
api-endpoint
twlines
REST API route patterns for AppServer
SkillDFreshness: DClaude Code +9 - 0.401score
code-review
twlines
Self-review checklist before committing changes
SkillDFreshness: DClaude Code +9 - 0.401score
sql-migration
twlines
SQLite schema and migration patterns for Maslow
SkillDFreshness: DClaude Code +9 - 0.401score
effect-conventions
twlines
Effect-TS patterns and anti-patterns for Maslow codebase
SkillDFreshness: DClaude Code +9 - 0.401score
pr-preparation
twlines
Commit and PR preparation standards for agent output
SkillDFreshness: DClaude Code +9 - 0.401score
schema-to-service
twlines
End-to-end pipeline for adding a new entity to Maslow
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Feb 13, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/twlines/maslow
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from twlines
- 0.409score
maslow-audit
twlines
Run architecture, security, and code quality audits on the Maslow codebase.
SkillDFreshness: DClaude Code +9 - 0.409score
wire-feature
twlines
Scaffold and wire a full-stack feature across server, shared types, and client.
SkillDFreshness: DClaude Code +9 - 0.409score
document
twlines
Generate structured code documentation for files, services, or modules.
SkillDFreshness: DClaude Code +9 - 0.404score
conversation-context
twlines
How to use prior decisions and daily logs before starting work
SkillDFreshness: DClaude Code +9 - 0.404score
refactor-patterns
twlines
Safe refactoring patterns for moves, renames, and extractions
SkillDFreshness: DClaude Code +9 - 0.401score
sql-migration
twlines
SQLite schema and migration patterns for Maslow
SkillDFreshness: DClaude Code +9
Cite this page
effect-service skill. Agent Mart. https://agentmart.dev/skills/twlines-effect-service (last updated 2026-10-24)