Run3 read scala test spec
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.From its SKILL.md
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.
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.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.