smithery/inocan-group

Parsing and Mutating Strings

Utilities in this library which provide effective ways to parse or mutate text at both runtime and design-time while ensuring that the resulting type is as narrow as possible.

Installation

$ npx skills add smithery/inocan-group --skill parsing-and-mutating-strings

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,945 B
  • docs SUMMARY.md 211 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Parsing and Mutating Strings

Instructions

  1. Identify which of the two best describe your needs:

1. Simple - finding a sub-string inside a string variable - stripping or retaining content UNTIL a certain delimiter is found - ensuring that the string starts or ends with a certain sub-string 2. Structured - you need to parse a string for language features - different parts of the string will have different parsing rules based on the characters which preceded it.

  1. If your need fits the Simple description then ...

You will likely want to use one of the following type or runtime utilities found in this repo. Every utility's source will have a description above the symbol and many also may include a simple example.

### Type Utilities

> you can import all of these utilities from inferred-types/types

- Trim whitespace - Trim<T> [ [source](), [examples]() ] - TrimStart<T> [ [source](), [examples]() ] - and TrimEnd<T> [ [source](), [examples]() ] - Strip a subsection of content - StripAfter<TStr,TBreak> [ [source](), [examples]() ] - strip TStrip after first instance of TBreak - StripAfterLast<TStr,TBreak> [ [source](), [examples]() ] - strip TStrip after last instance of TBreak - StripBefore<TStr,TBreak> [ [source](), [examples]() ] - strip TStr before the substring TBreak is found; retain the rest - StripFirst<T,U> [ [source](), [examples]() ] - StripLeading<T,U> [ [source](), [examples]() ] - StripSurround<T,U> [ [source](), [examples]() ] - StripTrailing<T,U> [ [source](), [examples]() ] - StripUntil<T,U> [ [source](), [examples]() ] - Retain a subsection of content (the inverse of "strip") - RetainAfter<T,U> [ [source](), [examples]() ] - RetainAfterLast<T,U> [ [source](), [examples]() ] - RetainBetween<T,U> [ [source](), [examples]() ] - RetainUntil<T,U> [ [source](), [examples]() ] - RetainWhile<T,U> [ [source](), [examples]() ] - String Interpolation (aka, injecting content into sections of a corpus of text) - TODO

  1. If your need fits the Structured need then ...

Notes:

  • there is often (but not always) a 1:1 relationship between a type utility and a runtime function.

- The runtime function (often but not always) will leverage the corresponding type utility to produce narrow types.

  • many example links are to test files; these test files use both runtime and type tests. For more about type tests you can read [type testing](../../docs/type-testing.md) document.