Skip to main content

Interface: ConfigWriter

Defined in: packages/core/src/application/ports/config-writer.ts:31

Port for writing and mutating the project configuration (specd.yaml).

Unlike ConfigLoader, which is read-only, ConfigWriter handles the operations that create or modify the on-disk configuration.

Methods

initProject()

initProject(options): Promise<InitProjectResult>

Defined in: packages/core/src/application/ports/config-writer.ts:40

Creates a new specd.yaml in projectRoot, creates the required storage directories, and appends specd.local.yaml to .gitignore.

Parameters

options

InitProjectOptions

Initialisation options

Returns

Promise<InitProjectResult>

The path and metadata of the created config

Throws

When specd.yaml already exists and force is not set


readSkillsManifest()

readSkillsManifest(configPath): Promise<Record<string, string[]>>

Defined in: packages/core/src/application/ports/config-writer.ts:62

Reads the skills key from specd.yaml and returns it, or {} if absent.

Parameters

configPath

string

Absolute path to the specd.yaml to read

Returns

Promise<Record<string, string[]>>

A map of agent name → list of installed skill names


recordSkillInstall()

recordSkillInstall(configPath, agent, skillNames): Promise<void>

Defined in: packages/core/src/application/ports/config-writer.ts:50

Records that a skill set was installed for a given agent by merging the skill names into the skills key of specd.yaml.

Parameters

configPath

string

Absolute path to the specd.yaml to update

agent

string

The agent name (e.g. 'claude')

skillNames

readonly string[]

The skill names to record

Returns

Promise<void>