- OPERATORS
- CONTROLLERS
Build Agent Skill
v1.0.0newbuild_agent_skill helps turn a LOPs tool operator into a reusable agent skill. Use it when a tool already exposes useful behavior and you want to save guidance as a Python skill file, a Markdown reference, or a skills_config row.
What It Does
Section titled “What It Does”The operator analyzes a Target Tool OP, reads its GetTool() surface when available, collects custom parameter context, checks for existing skills, and previews that analysis in internal tables. It can generate a blank Python skill scaffold, scan user/project/custom skill folders, or let an agent write finished skill content through its tool interface.
For file outputs, User Skills resolves through the active ChatTD Python venv and Project .lops resolves under the current project. For skills_config output, the operator writes table content onto the target COMP rather than creating a file.
Typical Workflow
Section titled “Typical Workflow”- Set Target Tool OP to the LOPs tool operator the skill should describe.
- Pulse Analyze Target and inspect
analysis_results. - Choose Output Mode and Output Location.
- Set Skill Name using a stable snake_case name.
- For a starter file, leave Include get_context() enabled when the skill needs live read-only context, then pulse Generate Blank Skill.
- Use Scan Skill Files to check existing skill files, or Open Skills Folder / Open in Editor when editing the generated output.
Inputs And Outputs
Section titled “Inputs And Outputs”- Inputs: No connector inputs. Set Target Tool OP from the parameter panel.
- Outputs: No connector outputs. The operator writes skill files, Markdown files, or
skills_configtable rows depending on Output Mode. - Internal tables:
analysis_resultsshows the target surface,generated_skillspreviews generated table content, andavailable_skillslists scanned skill files.
Agent Tool Use
Section titled “Agent Tool Use”build_agent_skill exposes GetTool() as a tool named by Tool Name, defaulting to build_agent_skill. An agent can analyze a target operator, scan existing skill files, write Python skill files, write Markdown references, or write skills_config rows.
It also declares a Build Agent Skill skill. When gathered by an Agent, the skill context includes the target tool surface, custom parameters, existing skills, and any current gather-context output so the agent can author a focused skill.
Works Well With
Section titled “Works Well With”agent: Can call this operator as a meta-tool to author skills.tool_td_code: A common target when documenting code-editing workflows for agents.tool_td_mod: A common target when documenting TouchDesigner network modification workflows.build_agent_profile: Complements skill authoring with reusable Agent configuration.
Gotchas
Section titled “Gotchas”- Run Analyze Target before generating or writing so the skill reflects the current target tool name, schema, and parameters.
- Output Mode controls where content goes.
skills_configupdates a table on the target COMP, while Python and Markdown modes write files. - User Skills depends on the active ChatTD Python venv. If unavailable, the operator falls back to the project
.lops/skillsfolder. - Generated blank skills are scaffolds; the useful behavior comes from replacing the TODO workflow with target-specific guidance.
Parameters
Section titled “Parameters”Build Agent Skill
Section titled “Build Agent Skill”op('build_agent_skill').par.Targetop OP Tool operator to inspect before authoring a skill.
- Default:
"" (Empty String)
op('build_agent_skill').par.Analyze Pulse Read the target tool surface, including GetTool, custom parameters, and existing skills.
- Default:
False
op('build_agent_skill').par.Toolcount Str Read-only summary of tool functions found on the target operator.
- Default:
"" (Empty String)
op('build_agent_skill').par.Parcount Str Read-only summary of custom parameters found on the target operator.
- Default:
"" (Empty String)
op('build_agent_skill').par.Skillcount Str Read-only summary of existing skills found on the target operator or written by this operator.
- Default:
"" (Empty String)
op('build_agent_skill').par.Outputfolder Folder Custom destination folder used when Output Location is Custom Folder.
- Default:
"" (Empty String)
op('build_agent_skill').par.Scanavailableskills Pulse Scan user, project, and custom skill folders for existing .py and .md skill files.
- Default:
False
op('build_agent_skill').par.Availableskillscount Str Read-only count from the latest skill folder scan.
- Default:
"" (Empty String)
op('build_agent_skill').par.Openskillsfolder Pulse Open the currently resolved output skills folder in the system file browser.
- Default:
False
op('build_agent_skill').par.Skillname Str File or row name for the generated skill. Use snake_case for reusable skills.
- Default:
"" (Empty String)
op('build_agent_skill').par.Includegather Toggle Include a starter get_context() scaffold in generated Python skill files.
- Default:
True
op('build_agent_skill').par.Generateblank Pulse Create a starter Python skill file from the current target analysis.
- Default:
False
op('build_agent_skill').par.Lastfile Str Read-only path or status for the most recently generated skill file.
- Default:
"" (Empty String)
op('build_agent_skill').par.Openexternal Pulse Open the last generated skill file in the system editor.
- Default:
False
op('build_agent_skill').par.Toolname Str Function name exposed to agents when this operator is used as a tool.
- Default:
build_agent_skill
op('build_agent_skill').par.Tooldescription Str Function description exposed to agents when this operator is used as a tool.
- Default:
Build skills for LOPs tool operators. Use action=analyze first to read a target tool surface. Then use action=write_py, write_config, or write_md with flat typed fields. Use action=scan_skills to list existing user/project/custom skill files.
Changelog
Section titled “Changelog”v1.0.02026-05-02
- added operator source (SkillBuilderExt, guide) - added docs/compose.json - added frozen release 1.0.0 tox - updated manifest and README for conservative release naming
- Initial skill_builder structure
- Initial commit