Skip to content

PromptScript API


Class: RooFormatter

Defined in: formatters/src/formatters/roo.ts:48

Formatter for Roo Code instructions.

Roo Code uses .roorules as its main configuration file and .roo/skills/<name>/SKILL.md for skills.

Supports three versions: - simple (default): Single .roorules file - multifile: Single rules file (reserved for future expansion) - full: Rules + skills

Example

targets:
  - roo  # uses simple mode
  - roo:
      version: multifile

Extends

Constructors

Constructor

new RooFormatter(): RooFormatter

Defined in: formatters/src/formatters/roo.ts:49

Returns

RooFormatter

Overrides

MarkdownInstructionFormatter.constructor

Properties

config

protected readonly config: MarkdownFormatterConfig

Defined in: formatters/src/markdown-instruction-formatter.ts:120

Inherited from

MarkdownInstructionFormatter.config


defaultConvention

readonly defaultConvention: string

Defined in: formatters/src/markdown-instruction-formatter.ts:118

Default convention for this formatter

Inherited from

MarkdownInstructionFormatter.defaultConvention


description

readonly description: string

Defined in: formatters/src/markdown-instruction-formatter.ts:117

Human-readable description

Inherited from

MarkdownInstructionFormatter.description


name

readonly name: string

Defined in: formatters/src/markdown-instruction-formatter.ts:115

Unique formatter identifier

Inherited from

MarkdownInstructionFormatter.name


outputPath

readonly outputPath: string

Defined in: formatters/src/markdown-instruction-formatter.ts:116

Default output file path

Inherited from

MarkdownInstructionFormatter.outputPath


standardsExtractor

protected readonly standardsExtractor: StandardsExtractor

Defined in: formatters/src/base-formatter.ts:28

Shared standards extractor for consistent extraction across all formatters.

Inherited from

MarkdownInstructionFormatter.standardsExtractor

Methods

addCommonSections()

protected addCommonSections(ast, renderer, sections): void

Defined in: formatters/src/markdown-instruction-formatter.ts:477

Parameters

ast

Program

renderer

ConventionRenderer

sections

string[]

Returns

void

Inherited from

MarkdownInstructionFormatter.addCommonSections


addSection()

protected addSection(sections, content): void

Defined in: formatters/src/markdown-instruction-formatter.ts:496

Parameters

sections

string[]

content

string | null

Returns

void

Inherited from

MarkdownInstructionFormatter.addSection


architecture()

protected architecture(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:583

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.architecture


codeStandards()

protected codeStandards(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:596

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.codeStandards


commands()

protected commands(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:651

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.commands


configFiles()

protected configFiles(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:633

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.configFiles


createRenderer()

protected createRenderer(options?): ConventionRenderer

Defined in: formatters/src/base-formatter.ts:34

Create a convention renderer for this formatter. Uses the provided convention from options or falls back to the default.

Parameters

options?

FormatOptions

Returns

ConventionRenderer

Inherited from

MarkdownInstructionFormatter.createRenderer


dedent()

protected dedent(text): string

Defined in: formatters/src/base-formatter.ts:452

Remove common leading whitespace from all lines (dedent). Handles the case where trim() was already called, causing the first line to lose its indentation while subsequent lines retain theirs. Calculates minimum indent from lines 2+ only.

Parameters

text

string

Returns

string

Inherited from

MarkdownInstructionFormatter.dedent


diagrams()

protected diagrams(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:714

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.diagrams


documentation()

protected documentation(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:695

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.documentation


extractAgents()

protected extractAgents(ast): MarkdownAgentConfig[]

Defined in: formatters/src/markdown-instruction-formatter.ts:398

Parameters

ast

Program

Returns

MarkdownAgentConfig[]

Inherited from

MarkdownInstructionFormatter.extractAgents


extractCommands()

protected extractCommands(ast): MarkdownCommandConfig[]

Defined in: formatters/src/markdown-instruction-formatter.ts:274

Parameters

ast

Program

Returns

MarkdownCommandConfig[]

Inherited from

MarkdownInstructionFormatter.extractCommands


extractRestrictionsItems()

protected extractRestrictionsItems(content): string[]

Defined in: formatters/src/markdown-instruction-formatter.ts:786

Parameters

content

BlockContent

Returns

string[]

Inherited from

MarkdownInstructionFormatter.extractRestrictionsItems


extractSectionWithCodeBlock()

protected extractSectionWithCodeBlock(text, header): string | null

Defined in: formatters/src/base-formatter.ts:176

Safe extraction of a section that contains a header + content + code block + content Avoids ReDoS by using string search instead of backtracking regex. Matches pattern: Header ... ...

Parameters

text

string

string

Returns

string | null

Inherited from

MarkdownInstructionFormatter.extractSectionWithCodeBlock


extractSkills()

protected extractSkills(ast): MarkdownSkillConfig[]

Defined in: formatters/src/markdown-instruction-formatter.ts:340

Parameters

ast

Program

Returns

MarkdownSkillConfig[]

Inherited from

MarkdownInstructionFormatter.extractSkills


extractTechStackFromContext()

protected extractTechStackFromContext(context): string[]

Defined in: formatters/src/markdown-instruction-formatter.ts:541

Parameters

context

Block | undefined

Returns

string[]

Inherited from

MarkdownInstructionFormatter.extractTechStackFromContext


extractTechStackFromStandards()

protected extractTechStackFromStandards(standards): string[]

Defined in: formatters/src/markdown-instruction-formatter.ts:567

Parameters

standards

Block | undefined

Returns

string[]

Inherited from

MarkdownInstructionFormatter.extractTechStackFromStandards


extractText()

protected extractText(content): string

Defined in: formatters/src/base-formatter.ts:69

Extract text from block content.

Parameters

content

BlockContent

Returns

string

Inherited from

MarkdownInstructionFormatter.extractText


findBlock()

protected findBlock(ast, name): Block | undefined

Defined in: formatters/src/base-formatter.ts:62

Find a block by name, ignoring internal blocks (starting with __).

Parameters

ast

Program

name

string

Returns

Block | undefined

Inherited from

MarkdownInstructionFormatter.findBlock


format()

format(ast, options?): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:131

Transform AST to tool-specific format

Parameters

ast

Program

options?

FormatOptions

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.format


formatArray()

protected formatArray(arr): string

Defined in: formatters/src/base-formatter.ts:120

Format an array as comma-separated string.

Parameters

arr

unknown[]

Returns

string

Inherited from

MarkdownInstructionFormatter.formatArray


formatFull()

protected formatFull(ast, options?): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:215

Parameters

ast

Program

options?

FormatOptions

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.formatFull


formatMultifile()

protected formatMultifile(ast, options?): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:179

Parameters

ast

Program

options?

FormatOptions

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.formatMultifile


formatSimple()

protected formatSimple(ast, options?): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:159

Parameters

ast

Program

options?

FormatOptions

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.formatSimple


formatStandardsList()

protected formatStandardsList(items): string[]

Defined in: formatters/src/base-formatter.ts:112

Format standards list from array of values (pass-through). Returns array of strings for rendering as bullet list.

Parameters

items

Value

Returns

string[]

Inherited from

MarkdownInstructionFormatter.formatStandardsList


generateAgentFile()

protected generateAgentFile(config): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:422

Parameters

config

MarkdownAgentConfig

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.generateAgentFile


generateCommandFile()

protected generateCommandFile(config): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:313

Parameters

config

MarkdownCommandConfig

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.generateCommandFile


generateSkillFile()

protected generateSkillFile(config): FormatterOutput

Defined in: formatters/src/markdown-instruction-formatter.ts:369

Parameters

config

MarkdownSkillConfig

Returns

FormatterOutput

Inherited from

MarkdownInstructionFormatter.generateSkillFile


getArrayElements()

protected getArrayElements(content): Value[]

Defined in: formatters/src/base-formatter.ts:144

Extract array elements from block content.

Parameters

content

BlockContent

Returns

Value[]

Inherited from

MarkdownInstructionFormatter.getArrayElements


getMetaField()

protected getMetaField(ast, key): string | undefined

Defined in: formatters/src/base-formatter.ts:134

Get meta field value as string.

Parameters

ast

Program

key

string

Returns

string | undefined

Inherited from

MarkdownInstructionFormatter.getMetaField


getOutputPath()

protected getOutputPath(options?): string

Defined in: formatters/src/base-formatter.ts:55

Get the output path, respecting options override.

Parameters

options?

FormatOptions

Returns

string

Inherited from

MarkdownInstructionFormatter.getOutputPath


getPrettierOptions()

protected getPrettierOptions(options?): Required\<PrettierMarkdownOptions>

Defined in: formatters/src/base-formatter.ts:45

Get resolved Prettier options, merging provided options with defaults.

Parameters

options?

FormatOptions

Returns

Required\<PrettierMarkdownOptions>

Inherited from

MarkdownInstructionFormatter.getPrettierOptions


getProp()

protected getProp(content, key): Value | undefined

Defined in: formatters/src/base-formatter.ts:83

Get a specific property from block content.

Parameters

content

BlockContent

key

string

Returns

Value | undefined

Inherited from

MarkdownInstructionFormatter.getProp


getProps()

protected getProps(content): Record\<string, Value>

Defined in: formatters/src/base-formatter.ts:97

Get all properties from block content.

Parameters

content

BlockContent

Returns

Record\<string, Value>

Inherited from

MarkdownInstructionFormatter.getProps


getSectionName()

protected getSectionName(key): string

Defined in: formatters/src/markdown-instruction-formatter.ts:258

Parameters

key

SectionNameKey

Returns

string

Inherited from

MarkdownInstructionFormatter.getSectionName


gitCommits()

protected gitCommits(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:612

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.gitCommits


isSafeSkillName()

protected isSafeSkillName(name): boolean

Defined in: formatters/src/base-formatter.ts:505

Check if a skill name is safe for use in file paths.

Parameters

name

string

Returns

boolean

Inherited from

MarkdownInstructionFormatter.isSafeSkillName


knowledgeContent()

protected knowledgeContent(ast, _renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:739

Render remaining

Parameters

ast

Program

_renderer

ConventionRenderer

Returns

string | null

Knowledge

text content that isn't consumed by other sections. Strips "## Development Commands" and "## Post-Work Verification" sub-sections since those are already rendered by commands() and postWork().

Inherited from

MarkdownInstructionFormatter.knowledgeContent


normalizeMarkdownForPrettier()

protected normalizeMarkdownForPrettier(content): string

Defined in: formatters/src/base-formatter.ts:204

Normalize markdown content to match Prettier formatting. - Strips common leading indentation from lines - Trims trailing whitespace from lines - Normalizes markdown table formatting - Adds blank lines before lists when preceded by text - Adds blank lines before code blocks when preceded by text - Escapes markdown special characters in paths

Parameters

content

string

Returns

string

Inherited from

MarkdownInstructionFormatter.normalizeMarkdownForPrettier


postWork()

protected postWork(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:682

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.postWork


project()

protected project(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:500

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.project


resolveVersion()

protected resolveVersion(version?): MarkdownVersion

Defined in: formatters/src/markdown-instruction-formatter.ts:149

Parameters

version?

string

Returns

MarkdownVersion

Inherited from

MarkdownInstructionFormatter.resolveVersion


restrictions()

protected restrictions(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:776

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.restrictions


sanitizeResourceFiles()

protected sanitizeResourceFiles(resources, targetDir): FormatterOutput[]

Defined in: formatters/src/base-formatter.ts:483

Filter resource files to only include safe paths. Rejects paths with traversal, absolute paths, and unsafe names.

Parameters

resources

object[] | undefined

targetDir

string

Returns

FormatterOutput[]

Inherited from

MarkdownInstructionFormatter.sanitizeResourceFiles


stripAllIndent()

protected stripAllIndent(content): string

Defined in: formatters/src/base-formatter.ts:348

Strip all leading indentation from markdown content. Used for AGENTS.md where content from multiple sources has inconsistent indentation. Preserves indentation inside code blocks.

Parameters

content

string

Returns

string

Inherited from

MarkdownInstructionFormatter.stripAllIndent


techStack()

protected techStack(ast, renderer): string | null

Defined in: formatters/src/markdown-instruction-formatter.ts:521

Parameters

ast

Program

renderer

ConventionRenderer

Returns

string | null

Inherited from

MarkdownInstructionFormatter.techStack


transformRestrictionItem()

protected transformRestrictionItem(s): string

Defined in: formatters/src/markdown-instruction-formatter.ts:266

Parameters

s

string

Returns

string

Inherited from

MarkdownInstructionFormatter.transformRestrictionItem


truncate()

protected truncate(str, max): string

Defined in: formatters/src/base-formatter.ts:127

Truncate string to max length with ellipsis.

Parameters

str

string

max

number

Returns

string

Inherited from

MarkdownInstructionFormatter.truncate


valueToString()

protected valueToString(value): string

Defined in: formatters/src/base-formatter.ts:154

Convert value to string representation.

Parameters

value

Value

Returns

string

Inherited from

MarkdownInstructionFormatter.valueToString


yamlString()

protected yamlString(value): string

Defined in: formatters/src/markdown-instruction-formatter.ts:448

Parameters

value

string

Returns

string

Inherited from

MarkdownInstructionFormatter.yamlString


getSupportedVersions()

static getSupportedVersions(): object

Defined in: formatters/src/formatters/roo.ts:67

Get supported versions for this formatter.

Returns

object

full

readonly full: object

full.description

readonly description: ".roorules + .roo/skills/<name>/SKILL.md" = '.roorules + .roo/skills/<name>/SKILL.md'

full.name

readonly name: "full" = 'full'

full.outputPath

readonly outputPath: ".roorules" = '.roorules'

multifile

readonly multifile: object

multifile.description

readonly description: "Single .roorules file (skills via full mode)" = 'Single .roorules file (skills via full mode)'

multifile.name

readonly name: "multifile" = 'multifile'

multifile.outputPath

readonly outputPath: ".roorules" = '.roorules'

simple

readonly simple: object

simple.description

readonly description: "Single .roorules file" = 'Single .roorules file'

simple.name

readonly name: "simple" = 'simple'

simple.outputPath

readonly outputPath: ".roorules" = '.roorules'