Effect TS
mattiacerutti/supernova
Write idiomatic Effect v4 TypeScript following official best practices from effect-solutions and the Effect source.
Worker brief for implementing one pre-assigned feature in the senpi todotools built-in extension, with strict scope, typing, testing and git-safety rules.
$ npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install code-yeongyu/senpi coding-agent-extension-worker --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.factory/skills/coding-agent-extension-worker .claude/skills/coding-agent-extension-worker && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "coding-agent-extension-worker" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-worker into .claude/skills/coding-agent-extension-worker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent-extension-worker", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-workerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install code-yeongyu/senpi coding-agent-extension-worker --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.factory/skills/coding-agent-extension-worker .agents/skills/coding-agent-extension-worker && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coding-agent-extension-worker" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-worker into .agents/skills/coding-agent-extension-worker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent-extension-worker", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install code-yeongyu/senpi coding-agent-extension-worker --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.factory/skills/coding-agent-extension-worker .cursor/skills/coding-agent-extension-worker && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "coding-agent-extension-worker" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-worker into .cursor/skills/coding-agent-extension-worker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent-extension-worker", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/code-yeongyu/senpi.git --path .factory/skills/coding-agent-extension-worker--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install code-yeongyu/senpi coding-agent-extension-worker --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.factory/skills/coding-agent-extension-worker .gemini/skills/coding-agent-extension-worker && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "coding-agent-extension-worker" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-worker into .gemini/skills/coding-agent-extension-worker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent-extension-worker", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install code-yeongyu/senpi coding-agent-extension-workerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .github/skills && cp -r skills-src/.factory/skills/coding-agent-extension-worker .github/skills/coding-agent-extension-worker && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "coding-agent-extension-worker" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-worker into .github/skills/coding-agent-extension-worker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent-extension-worker", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install code-yeongyu/senpi coding-agent-extension-worker --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.factory/skills/coding-agent-extension-worker .opencode/skills/coding-agent-extension-worker && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "coding-agent-extension-worker" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.factory/skills/coding-agent-extension-worker into .opencode/skills/coding-agent-extension-worker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent-extension-worker", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
coding-agent-extension-workerWorker brief for implementing one pre-assigned feature in the senpi todotools built-in extension, with strict scope, typing, testing and git-safety rules.
The agent implements exactly one feature from `features.json`, working only against that feature's description, preconditions, expected behavior, verification steps and the assertions it fulfills. Before starting it reads the mission document, the validation contract, the architecture, environment and user-testing notes under `.factory/library`, and both the mission and root `AGENTS.md` files.
Hard rules keep the work inside the `todotools` extension and `builtin/index.ts`, leaving core packages and other extension files untouched. Type suppressions such as `any` and `@ts-ignore` are banned in that folder, imports must be top-level, tests use a faux provider through `createHarness` and never real LLM calls, and git use is limited to adding specific paths with no force flags, hard resets or stashes, committing only files touched in the session. Emojis are not allowed. It covers refactoring, the continuation runtime, config resolver, prompt builder, tests, golden snapshots and changelog entries, but not manual tmux QA.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0fa9139. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Senpi Todotools Extension Worker loads about 2.8k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 1,468 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from code-yeongyu/senpi at commit 0fa9139, republished under its MIT licence (© code-yeongyu). 1,468 words, ~2,843 tokens.
.claude/skills/coding-agent-extension-worker/SKILL.md (or your agent's skills folder).You are implementing exactly ONE feature from features.json in the senpi-mono coding-agent package. Your feature has been pre-assigned — read it from features.json, identify it by its id, and focus exclusively on its description, preconditions, expectedBehavior, verificationSteps, and the assertions listed in fulfills.
features.json — your assigned feature only.mission.md in the mission directory — for overall context.validation-contract.md — each ID in your feature's fulfills describes the exact pass/fail condition you must satisfy. Read ALL your fulfills entries before you start..factory/library/architecture.md — the target system shape. Your work MUST conform to this..factory/library/environment.md — tooling quirks, forbidden patterns..factory/library/user-testing.md — test infrastructure conventions.AGENTS.md in the mission directory — boundaries, conventions, git safety rules.AGENTS.md at the repo root (senpi-mono coding guidelines) — fork strategy, commit conventions, anti-patterns.packages/ai, packages/agent, packages/tui, packages/mom, packages/pods, packages/coding-agent/src/core/settings-manager.ts, packages/coding-agent/src/core/extensions/types.ts, runner.ts, loader.ts, wrapper.ts, or any other builtin extension besides todotools/ and builtin/index.ts.any, as any, @ts-ignore, @ts-expect-error are forbidden across all files in builtin/todotools/. Use explicit type guards instead.await import() or import("pkg").Type.createHarness.git add <specific-path>. Never -A, never ., never --no-verify, never reset --hard, never checkout ., never clean -fd, never stash.git status before staging.tsc enforced: all code compiles cleanly with no diagnostics.Read in this order: your feature entry in features.json, the fulfills assertions in validation-contract.md, .factory/library/architecture.md, .factory/library/environment.md, mission AGENTS.md, root project AGENTS.md. Do not start coding until you have read all of these. If anything is ambiguous or conflicts with what's on disk, return to orchestrator instead of guessing.
Explore the relevant source files before writing any code:
packages/coding-agent/src/core/extensions/builtin/todowrite.ts (pre-refactor) AND builtin/index.ts (registration).packages/coding-agent/src/core/extensions/types.ts (search for agent_end, sendUserMessage, registerFlag, getFlag, BeforeAgentStartEvent) to confirm signatures. Also read packages/coding-agent/docs/extensions.md sections on those APIs. Read the existing permission-system/settings.ts for the canonical "read settings via SettingsManager without widening the interface" pattern.test/suite/harness.ts, test/suite/todowrite-extension.test.ts, test/utilities.ts to understand the faux provider pattern.Use Grep, Glob, and Read tools. Prefer reading real source over trusting summaries.
List the files you will create, edit, or delete for this feature. Verify each is inside the allowed paths. If any file is outside the allow-list, stop and return to orchestrator.
Make the edits. Match the existing code style (tabs, indent, type annotations). When you write a new module:
For each assertion ID in your feature's fulfills, confirm the evidence requirement is actually met by your implementation. Re-read the behavioral description in validation-contract.md. If an assertion requires a specific file, a specific grep result, a specific test outcome — satisfy it exactly.
Run your feature's verificationSteps in the order listed. They typically include:
.factory/services.yaml test-coding-agent or test-coding-agent-file commands).npm run check at the repo root.Capture all output. If any step fails, diagnose and fix. Do NOT mark the feature done with failing verification.
Run git status and git diff to inspect every change. Confirm:
local-ignore/ files are staged.Stage with explicit paths only. Commit with a conventional message scoped to your feature. Do not push.
Return a structured handoff (the mission runner collects this):
successState: "success" (all assertions verified), "partial" (some assertions blocked, documented), or "failure" (unable to complete).filesChanged: the exact list of paths you created/modified/deleted.verifications: the verification commands you ran and their outcomes.discoveredIssues: anything you noticed about the codebase that's broken or concerning but outside your feature scope (do not silently ignore — surface it).whatWasLeftUndone: anything you skipped or couldn't finish inside your scope. If anything, explain why.criticalContext: anything a subsequent worker needs to know that isn't already in the architecture or environment docs.Mission AGENTS.md MAY contain a section titled "Known Pre-Existing Issues (Do Not Fix — Out of Scope)" listing test files and case counts that are red at the mission's base commit. When such a section exists, the following rule applies and overrides the generic "return on out-of-scope validator failure" escalation:
If git status at the start of your session shows uncommitted changes that are entirely inside your assigned feature's allowed paths, treat this as a recoverable in-progress state from a prior worker session, NOT an immediate escalation. Procedure:
git status --short and git diff (and git diff --cached) over the dirty files. Confirm every dirty path is inside your feature's allow-list.description, expectedBehavior, and fulfills. If they are correct and complete, proceed to Step 5 (verify) and Step 6 (run verification commands), then commit them as your feature's commit.Untracked files outside your feature paths (e.g., .pi/permissions-approved.jsonl, .pi/settings.json, .sisyphus/, local-ignore/) are unrelated user-local artifacts and should be ignored, never staged.
Return control to the orchestrator immediately (do NOT attempt creative workarounds) when:
npm run check or npm run build fails for reasons unrelated to your edits.fulfills that is impossible to satisfy as written.SettingsManager in ways that widen the upstream Settings interface.let currentState = ... at the top of a file). ALL state must live inside closures.turn_end instead of agent_end for continuation (turn_end causes infinite recursion inside the tool loop).as any or @ts-ignore to "unblock" a type issue — return to orchestrator instead.If your feature is running significantly over budget, stop, assess, and consider returning to the orchestrator with partial state plus a plan for breaking it down further.
© code-yeongyu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .factory/skills/coding-agent-extension-worker of code-yeongyu/senpi.
Open the folder on GitHubat commit 0fa9139
Senpi Todotools Extension Worker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Senpi Todotools Extension Worker this skillcode-yeongyu/senpi | 470 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Effect TSmattiacerutti/supernova | 187 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Effect TSpproenca/dot-skills | 214 | — | ~2k | Automated safety check: Pass | MIT | |
| Effect TStellahq/opensession | 392 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Tabler Shared Lib Helperstabler/tabler | 42k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Typescript Idiomsirahardianto/awesome-agv | 157 | — | ~6.1k | Automated safety check: Pass | MIT |
mattiacerutti/supernova
Write idiomatic Effect v4 TypeScript following official best practices from effect-solutions and the Effect source.
pproenca/dot-skills
Effect-TS library usage in TypeScript — Effect.gen generators, Schema.Struct/Schema.Class definitions, Layer/Context.Tag/Service patterns, Effect.pipe pipelines, Data.TaggedError/Data.Class error…
tellahq/opensession
Write idiomatic Effect v4 TypeScript verified against the pinned effect@4.0.0-rc.112 source.
tabler/tabler
Moves logic out of Astro frontmatter into tested helper modules under shared/lib, with rules for naming, typing, deterministic demo data and sibling test files.
irahardianto/awesome-agv
TypeScript strict typing: type narrowing, discriminated unions, Zod runtime validation, generic utility types, and Vitest testing.
irahardianto/awesome-agv
Vue 3 Composition API patterns: <script setup syntax, reactive state with Pinia stores, reusable composables, and Vitest component testing.
code-yeongyu/senpi
Checks changes to the senpi coding agent by driving the real CLI from source in an isolated sandbox, over RPC, terminal UI, mock model and CLI smoke channels.
code-yeongyu/senpi
Syncs a fork branch with its upstream remote using a history-preserving merge commit, with no rebase and no force push.
code-yeongyu/senpi
Points the agent at Bun 1.4 built-in APIs before it installs an npm package, so image, browser, markdown, cron, PTY and test work uses what Bun already ships.
code-yeongyu/senpi
Prompt-crafting guide for gpt-image-2.5: which image tool to call, which model to pick, and how to write prompts, edit with references and refine over turns.
code-yeongyu/senpi
Walks the canonical CalVer release flow for senpi, from a clean main checkout through changelog audit, checks, tag push, GitHub Release and npm publishing.
code-yeongyu/senpi
Runs one manual QA scenario for the todo continuation feature in the real ./pi-test.sh CLI inside tmux, captures scrollback and checks a deterministic count marker.
Works with
Categories
Worker brief for implementing one pre-assigned feature in the senpi todotools built-in extension, with strict scope, typing, testing and git-safety rules. json`, working only against that feature's description, preconditions, expected behavior, verification steps and the assertions it fulfills.md` files.
Senpi Todotools Extension Worker fits situations like: implementing an assigned feature in the todotools extension from a feature list; writing tests and golden snapshots for the continuation runtime or config resolver; adding a changelog entry and harness helpers alongside an extension change.
Run `npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a claude-code`. Or copy the skill folder (.factory/skills/coding-agent-extension-worker in code-yeongyu/senpi) into .claude/skills/coding-agent-extension-worker in your project. Claude Code loads it when a task matches its description.
Run `npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a codex`. Or copy the skill folder (.factory/skills/coding-agent-extension-worker in code-yeongyu/senpi) into .agents/skills/coding-agent-extension-worker in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add code-yeongyu/senpi --skill coding-agent-extension-worker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coding-agent-extension-worker, .gemini/skills/coding-agent-extension-worker, .github/skills/coding-agent-extension-worker and .opencode/skills/coding-agent-extension-worker in your project.
Going by SKILL.md and its folder, Senpi Todotools Extension Worker needs the command-line tools its instructions call (git and npm). Our summary lists: A checkout of the senpi-mono repository with `features.json` and the mission documents.
SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Senpi Todotools Extension Worker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Senpi Todotools Extension Worker: Effect TS (mattiacerutti/supernova, 187 stars), Effect TS (pproenca/dot-skills, 214 stars), Effect TS (tellahq/opensession, 392 stars) and Tabler Shared Lib Helpers (tabler/tabler, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
code-yeongyu (a GitHub user) maintains it in code-yeongyu/senpi, which has 470 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: code-yeongyu/senpi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.