FeatureBuilder

Documentation
Source

Readable files, validation limits, and atomic replacement.

The local project format

Directory layout

my-chip-spec/
├── project.json
└── features/
    ├── feature-id-1.json
    └── feature-id-2.json

project.json stores project metadata and the ordered feature ID index. Every feature lives in a separate JSON file, keeping Git diffs focused and reducing edit conflicts across features.

File-boundary validation

  • Schema version must be 1 and project name must be non-empty.
  • Feature IDs use a restricted filename-safe character set and must be unique.
  • Parent IDs must resolve to another feature in the project.
  • Priorities, stage states, requirement types, approval states, and scenario methods use explicit enumerations.
  • A project may contain at most 5,000 features; individual JSON files are capped at 10 MiB and the serialized project at 100 MiB.

Atomic writes

The desktop process writes a temporary file with owner-only permissions, renames it over the target, and cleans up the temporary path. Obsolete feature JSON files are removed only after the new project representation has been written.