Skip to main content

Class: Spec

Defined in: packages/core/src/domain/entities/spec.ts:11

Metadata for a spec directory.

A spec is a directory identified by a workspace and a name (SpecPath). It contains one or more artifact files (e.g. spec.md, proposal.md). This entity holds only metadata — artifact content is loaded on demand via SpecRepository.artifact().

Constructors​

Constructor​

new Spec(workspace, name, filenames): Spec

Defined in: packages/core/src/domain/entities/spec.ts:23

Creates a new Spec with the given workspace, name, and artifact filenames.

Parameters​

workspace​

string

The workspace name from specd.yaml (e.g. "billing", "default")

name​

SpecPath

The spec path within the workspace's specs directory (e.g. auth/oauth)

filenames​

readonly string[]

The artifact filenames present in this spec directory

Returns​

Spec

Accessors​

filenames​

Get Signature​

get filenames(): readonly string[]

Defined in: packages/core/src/domain/entities/spec.ts:43

The artifact filenames present in this spec directory (e.g. ["spec.md", "proposal.md"]).

Returns​

readonly string[]


name​

Get Signature​

get name(): SpecPath

Defined in: packages/core/src/domain/entities/spec.ts:38

The spec identity path within the workspace's specs directory. For example, auth/oauth or billing/payments.

Returns​

SpecPath


workspace​

Get Signature​

get workspace(): string

Defined in: packages/core/src/domain/entities/spec.ts:30

The workspace name this spec belongs to (from specd.yaml).

Returns​

string

Methods​

hasArtifact()​

hasArtifact(filename): boolean

Defined in: packages/core/src/domain/entities/spec.ts:53

Returns whether this spec has an artifact with the given filename.

Parameters​

filename​

string

The filename to check (e.g. "spec.md")

Returns​

boolean

true if the artifact exists in this spec directory