Automated summary
Turns an already-researched scalarizer or aggregator into a complete TorchJD implementation, adding the class, docs, tests and changelog entry according to the repository's file-by-file conventions.
Strengths
- Forces reconciliation of the paper's equations with official and third-party code before writing anything (minimization vs maximization, normalization, silently ignored arguments).
- Delegates layout details to type-specific references (scalarizers.md / aggregators.md) so agent context stays focused.
- Explicitly refuses to guess non-standard interface aspects (statefulness, history buffers, trainable parameters) and asks the user for the research findings instead.
- Builds on prior research-method output and the tracking issues, so implementation starts from vetted information rather than assumptions.
Limitations
- Assumes the method is already in the tracking issue with research findings available; it does not work standalone.
- Tightly coupled to TorchJD's repository structure and conventions, so it is not reusable for other codebases.
- The provided SKILL.md is truncated mid-sentence and does not itself contain the code conventions, which live in external reference files.
When a contributor has a vetted research row in the TorchJD tracking issues and needs the actual implementation files produced.
When the method has not been researched yet or is missing from the tracking issue — run research-method first.
Security analysis
CautionThe skill is a legitimate contributor workflow for adding a method to TorchJD: it reads tracking issues, compares paper vs reference implementations, edits repo files, and runs tests. There are no destructive, exfiltrating, or obfuscated instructions (no curl|sh, rm -rf, secret handling, or safety-disabling). However, it directs network fetches of external/untrusted content and command execution without a declared tool scope or pinned commands, so it is best classified as caution rather than safe.
- •No allowed-tools declared, so the skill's instruction to fetch remote URLs (GitHub issues, external 'claude.ai share' write-ups) and to run tests/lint/docs builds is not bounded by any declared tool scope.
- •Step 1 directs the agent to fetch and trust external content (tracking issues, third-party research write-ups, paper links). This is a plausible indirect prompt-injection surface if any linked content is attacker-controlled.
- •Steps 6 instruct running commands (unit tests with -W error, lint, docs build/doctest) without pinning exact commands in the visible text; execution is delegated to referenced files not shown, so blast radius can't be fully assessed.
- •Step 5/3 mention adapting code from third-party repositories and adding license headers/NOTICES — legitimate, but implies copying external code into the repo, which warrants review of provenance.
Examples
/implement-method stch (Smooth Tchebycheff Scalarization for Multi-Objective Optimization)Implement the UPGrad aggregator in TorchJD using the row from tracking issue #665, and reconcile the paper's equations with the official implementation before writing the class, docs and tests.I want to add a new aggregator to TorchJD but I don't have the research write-up yet — can you check issue #665 and tell me what's missing before implementing?name: implement-method description: Implements a new method (scalarizer or aggregator) in TorchJD, starting from the research produced by the research-method skill and following the established file-by-file conventions. Use when a contributor wants to add the actual implementation of a scalarizer or aggregator that has already been investigated and listed in the tracking issues.
Implement new method
This skill implements a new method by recovering its research, comparing the paper against the existing implementations, settling the non-standard parts of its interface, and producing the full set of TorchJD files (class, docs, tests, changelog) that match the established conventions.
It is the companion of the research-method skill: that one investigates a method and records a row
in a tracking issue; this one turns that row into a merged implementation.
For agents: invoke as /implement-method method-name (paper-name) (e.g.
/implement-method stch (Smooth Tchebycheff Scalarization for Multi-objective Optimization)).
If no method name is provided, ask the user for the name of the method and the title of the paper.
For humans: follow the numbered steps below to guide your development.
Instructions
Step 1: Recover the research context
Determine whether the method should be a scalarizer or an aggregator, then read everything
the research-method skill already found about it:
- Scalarizers are tracked in https://github.com/SimplexLab/TorchJD/issues/667, aggregators in
https://github.com/SimplexLab/TorchJD/issues/665. Fetch the relevant issue and find the row for
this method. Read every column:
- Ref — the paper (open it; you will need the exact equations / algorithm).
- Stateful — whether and how the method holds state.
- Existing implementations — links to the official repo (if any) and the best-known third-party ones (LibMTL, libmoon, pymoo, ...), ideally with the exact file(s) and line(s).
- Special Remarks — may link to a full research write-up (e.g. a
claude.aishare produced byresearch-method). Read it if present.
- The most valuable inputs are the non-standard interface aspects uncovered during research:
statefulness, trainable parameters, randomness, warm-up / history buffers, statistics beyond the
forwardvalues (e.g. per-task losses for an aggregator), and preconditions. If these are not fully captured in the issue, ask the user to share theresearch-methodfindings before continuing. Do not guess them.
If the method is not in the tracking issue yet, run research-method first.
Step 2: Load the implementation reference for this method type
Read only the reference matching the method type, to keep context focused:
- Scalarizer → read
references/scalarizers.md. - Aggregator → read
references/aggregators.md.
Each reference lists the exact files to create/edit and the TorchJD-specific conventions, with the closest existing methods to mirror.
Step 3: Compare the paper with the existing implementations
Always do this — it is the step we invariably end up needing. Read the relevant equations / the algorithm box in the paper, then read the official and best-known third-party implementations at the exact files/lines from the tracking row.
Reconcile any discrepancies between them. The ones that most often bite:
- Minimization vs maximization. TorchJD minimizes losses; much MOO/evolutionary work is written for maximization, with the minimization form buried in a footnote. Find it, and check the sign of every reference / ideal-point subtraction.
- Normalization. A direction or weight vector may be normalized (
w / ‖w‖) in the code but not the paper, or vice versa. - Dead arguments. An impl may accept a parameter (e.g. a reference point) yet silently ignore it.
- Droppable terms. An
abs/clamp/max(0, ·)in the paper may be unnecessary under the method's preconditions (e.g. non-negative weights); drop it only with a justification. - Other: an extra factor, an init value, a stabilization / epsilon trick.
Decide which to follow, note why, and surface the disagreement to the user — the implementation should be faithful to a clearly-stated source, not an unexplained blend.
Step 4: Settle the interface and design decisions
Using the research findings (Step 1) and the comparison (Step 3), map each non-standard aspect onto the closest existing pattern from the reference loaded in Step 2 (statefulness, trainable parameters, an internal optimizer, a preference/reference vector, ...). Then settle, for any method type:
- Preconditions (e.g. positivity): enforce them (raise
ValueError) or only document them, and hownan/infshould propagate. - Which constructor arguments are required vs optional, and their defaults.
List the non-standard parts and your proposed handling, and confirm the design with the user before writing code. This is where most of the maintainer review happens, so settle it up front.
Step 5: Implement the method
Follow the file-by-file checklist in the reference loaded at Step 2. Match the style, naming, and
conventions of the closest existing method. If you adapt code from a third-party repository, add the
license header to the source file and an entry to NOTICES (see the reference).
Step 6: Verify
Run the checks listed in the reference (unit tests with -W error, lint, and the docs
build/doctest). GPU tests require a CUDA device; if you cannot run them, provide the exact commands
for the user to run on their GPU and report back the results.
Step 7: Self-review the code you produced
Before opening anything, re-read your own diff against the requirements and improve what can be improved. Check that:
- The class follows the closest existing method's conventions (the reference's checklist): correct
base class(es),
forward(self, values, /)returning a 0-dim scalar, shape validation,reset()for stateful methods, a correct__repr__, and the docstring conventions (r"""only with LaTeX,:class:cross-ref,.. math::+ bullet list, a usage doctest,:param:for each argument). - The design decisions settled in Step 4 are actually reflected in the code, and any discrepancy between the paper and the existing implementations (Step 3) is resolved deliberately, with a comment or docstring note where it is non-obvious.
- The tests cover the documented edge cases and contracts, not just the happy path.
- All six files are present and consistent (class,
__init__.py,.rst, toctree, test,CHANGELOG.md), plusNOTICES+ a license header if you adapted code.
Apply the fixes you find, then re-run the relevant checks from Step 6.
Step 8: Open a draft PR
Create a new branch, commit, and open a draft pull request targeting main, following the
repository's PR conventions (a CHANGELOG.md entry under [Unreleased] > ### Added; when asked for
a PR description, output raw GitHub-flavored markdown in a fenced code block, with GitHub math syntax
$...$ / $$...$$ and no em dashes). Keep it a draft so the contributor can read the code
themselves before requesting maintainer review. Return the PR URL when done.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/implement-new-method-ms2s7d0o/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/implement-new-method-ms2s7d0o' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/implement-new-method-ms2s7d0o/download' --output '.skill-downloads/implement-new-method-ms2s7d0o/SKILL.md.part' && mv '.skill-downloads/implement-new-method-ms2s7d0o/SKILL.md.part' '.skill-downloads/implement-new-method-ms2s7d0o/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/implement-new-method-ms2s7d0o/SKILL.md' && test -s '.skill-downloads/implement-new-method-ms2s7d0o/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/implement-method' && cp -R '.skill-downloads/implement-new-method-ms2s7d0o' '.claude/skills/implement-method'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/implement-new-method-ms2s7d0o'openskills read 'implement-new-method-ms2s7d0o'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/implement-new-method-ms2s7d0o/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.