Skip to content
Agentmart
Submit a tool

td-feature-build

Implement ONE tdmcp tool from a spec — the canonical file pattern (Zod schema + …Impl + register… ToolRegistrar), a bridge Python payload via…

Skill by hybridlabor-api

IndexedApache-2.0★ 6
Write a review

Chalk Labs

Need help deploying td-feature-build?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

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/hybridlabor-api-td-feature-build

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.

We use your email only for this newsletter. Privacy

About

Implement ONE tdmcp tool from a spec — the canonical file pattern (Zod schema + …Impl + register… ToolRegistrar), a bridge Python payload via buildPayloadScript, and an offline msw unit test — touching only new files, never shared registries. Use when coding/implementing/writing a tdmcp tool, generator, effect, control, CHOP/TOP/SOP builder, or Python bridge work, especially when several features are built in parallel.

Use cases: testing, writing

No 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/td-feature-build

What's inside

Skill name
td-feature-build
Description
Implement ONE tdmcp tool from a spec — the canonical file pattern (Zod schema + …Impl + register… ToolRegistrar), a bridge Python payload via buildPayloadScript, and an offline msw unit test — touching only new files, never shared registries. Use when coding/implementing/writing a tdmcp tool, generator, effect, control, CHOP/TOP/SOP builder, or Python bridge work, especially when several features are built in parallel.
License
Apache-2.0
Instructions
62 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# td-feature-build — implement one tool, new files only

Implement exactly what the spec says, in your own files, green in isolation. The parallel-build contract is simple: **new files only; never edit anything shared** (`layer*/index.ts`, `tools/index.ts`, `cli/agent.ts`, docs). That isolation is what lets builders run concurrently.

## The canonical tool-file pattern

Every tool file exports a pure `…Impl` and a `register…`. Mirror a neighbour in the same layer, but the shape is:

```ts
import { z } from "zod";
import type { ToolRegistrar } from "../types.js";          // note the .js extension
import { runBuild, errorResult } from "../result.js";

export const fooSchema = z.object({
  name: z.string().default("foo"),
  intensity: z.number().min(0).max(1).default(0.5),
});

export async function fooImpl(ctx: ToolContext, args: z.infer<typeof fooSchema>) {
  // build via the client; never throw — return errorResult / runBuild on failure
}

export const registerFoo: ToolRegistrar = (server, ctx) =>
  server.registerTool(
    "create_foo",
    { title: "…", description: "…", inputSchema: fooSchema.shape },
    (args) => fooImpl(ctx, args),
  );
```

`ctx` is the `ToolContext` (`{ client, knowledge, recipes, logger, vault?, allowRawPython }`). `…Impl` is pure and unit-testable with a mocked client.

## Hard rules

- **Never throw out of a handler.** Validate via the Zod schema; turn TD failures into friendly `isError` results with `errorResult` / `runBuild` / `friendlyTdError`. Return, don't throw.
- **`.js` import extensions** on every relative import (ESM/NodeNext). `noUncheckedIndexedAccess` is on — guard indexed access.
- **Biome**: 2-space, double quotes, semicolons, trailing commas, 100-col. Check with `./node_modules/.bin/biome check <yourfiles>` directly — `npm run lint` fails with a false ESLint parse error under the RTK proxy.
- **New files only.** Your tool file + `tests/unit/<feature>.test.ts`. Do not touch shared files; report your export names to the integrator instead.

## Bridge / Python work

- Build the script with `buildPayloadScript` (encodes args as `__PAYLOAD_B64__`), execute through the client, parse the reply with `parsePythonReport`.
- An `executePythonScript` payload must assign a **`result`** variable — the bridge reads it back.
- If you edit `td/` modules: keep TD-globals (`op`, `app`, `project`) inside functions so modules import cleanly, and run `python3 -m py_compile` on changed files.

## TD gotchas that make a "successful" build actually cook

- Many param/connect calls **fail silently**. Set the parameter that exists: a Level TOP has no `gain` — use `brightness1`. There is no `ParMode`.
- **No cross-container wires** — route a signal out of a container through a **Select TOP/CHOP**, not a direct wire.
- **GLSL TOPs**: declare `out vec4 fragColor;`; there is no built-in `uTime` (add your own uniform); avoid preamble `#define` collisions (F1/F2). KB shader snippets are references, not drop-in.
- Reactive/time-dependent chains read **0 when the timeline is paused** — that's expected, not a bug.

## msw unit test

- Mock the bridge with `msw` (no live TouchDesigner). Assert the real returned shape — operators created, params set, wiring, and `isError` paths — not a cast-away generic.
- Run only yours: `npx vitest run tests/unit/<feature>.test.ts`. Green + biome-clean = done. You do NOT run the full build (the integrator does after wiring).

## Output

The new tool file + test file, plus a note at `_workspace/02_build_<feature>.md`: files created, exported symbols (`<feature>Impl`, `register<Feature>`), target layer index, what the test asserts, and any spec deviation + reason. Then tell `td-integrator` the export names.

From hybridlabor-api/aos, Apache-2.0.

More from hybridlabor-api/aos

Signals

Stars
6
Forks
0
Open issues
19
Last commit (this folder)
Aug 13, 2026 (2 months ago)
Last release
Oct 14, 2026 (16 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from hybridlabor-api

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get td-feature-build running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying td-feature-build?

CallGet help
Cite this page

td-feature-build skill. Agent Mart. https://agentmart.dev/skills/hybridlabor-api-td-feature-build (last updated 2026-10-24)