Run3 read scala test spec
[COLM'26] SkillLearnBench is the first benchmark for evaluating continual learning methods that automatically generate agent skills.
npx -y skills add cxcscmu/SkillLearnBench --skill run3_read-scala-test-specAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Use this skill to read and understand /root/TokenizerSpec.scala to determine the exact expected API signatures, imports, class names, method names, and enum values that the Scala implementation must match.
SKILL.md
2.2 KB, 462 tokens by cl100k_base, as published. Nobody here has run it
Reading and Understanding /root/TokenizerSpec.scala
Step-by-step workflow
-
Read the test spec completely first (this is the authoritative source for the API):
cat /root/TokenizerSpec.scala -
Extract from the test spec:
- Package declaration: What package does the spec import from? Your implementation must use the same package.
- Import statements: Exactly what classes/objects/methods are imported? e.g.,
import tokenizer._orimport tokenizer.TokenType._— this tells you the package and whether things live in companion objects. - TokenType usage: Are enum values accessed as
TokenType.STRING,TokenType.NUMERIC, etc.? This tells you whether to use a sealed trait + case objects, an Enumeration, or Scala 3 enum (use Scala 2.13 compatible approach). - Token construction: How are Token instances created in tests?
Token(...)with what fields? - Tokenizer instantiation:
new StringTokenizer(),StringTokenizer()(companion object apply), orTokenizerBuilder? - Method calls: Exact method names like
.tokenize(text),.tokenizeBatch(texts), return types (List, Seq, Option, etc.) - Free functions: Are
tokenize,tokenizeBatch,toToken,withMetadatacalled as standalone functions (from a package object or imported from an object)? - Assertion patterns: What types are expected?
List[Token],Seq[Token],Option[Token]? - Metadata access: How is metadata accessed on tokens?
.metadata("key"),.metadata.get("key")?
-
Critical decisions determined by the spec:
- Whether to use
sealed trait+case objectvsEnumerationfor TokenType - Whether Token is a
case class - Where free functions live (package object vs companion object)
- What collection types to use (List vs Seq vs Vector)
- Whether methods return Option or can throw
- Whether to use
-
Write down every test case name — these are the behaviors you must implement correctly.