WORK-634
ID:WORK-634Status:ready

A project defines its own composed runes in runes.dir

SPEC-153 implementation note 4, the project side, and the step that opens composition to users. A project declares runes.dir in refrakt.config.json, following contentDir's shape, with a recommended default of runes (D4). The loader discovers every <rune>.md in it.

Decisions:

Priority:highComplexity:complexMilestone:v0.41.0Source:SPEC-153
claude/post-v0.38-roadmap-jb7pie View source

Criteria completion

Criteria completion: 0 of 7 (0%) checked; tracking started on Oct 8, no incremental history yet0%25%50%75%100%Oct 8Oct 11

Tracking started Oct 8 — check back for trends.

Branches 3
claude/post-v0.38-roadmap-jb7pie current ready
changeset-release/main readymain doneclaude/v041-project-rune-dir done
History 1
  1. fad3ced
    Created (ready)by bjornolofandersson

Blocked by

  • WORK-633

Acceptance Criteria

  • Project runes resolve under memoryProjectFiles with no filesystem, and a rune path escaping the project root is refused by the provider rather than by the loader (D5)
  • A project rune taking a core rune's name is rejected at load with both names reported; taking a plugin rune's name requires a runes.prefer entry (D8)
  • Editing a file in the project's rune directory in dev invalidates every page using that rune, asserted on a two-page fixture where only one page uses it (D10)
  • A project definition declaring schema is rejected at load, naming the rune and SPEC-145 D25; the same definition shipped in a plugin's runeDir is accepted
  • A composed definition passed through runes.local is rejected with a message pointing at runes.dir (D7)
  • create-refrakt scaffolds the runes.dir key, and a scaffolded project with one definition in runes/ builds and renders it
  • refrakt validate reports a project definition's construction errors with the definition's file and line, as structured findings