Musewoods · GroveThe Musewoods Field Manual

Grove Runtime

A Grove is a small, bounded, navigable website inside Musewoods. It can hold an idea, a venture, an institution, a research field, or another body of work that needs more structure than one article but less machinery than a separate application. Each Grove owns its identity, namespace, navigation, pages, visibility, and local assets while remaining inside the common Musewoods publishing system. This Field Manual is one such Grove, rendered on Soil.

The Guide's canopy mark belongs to that Grove identity and is declared in the manifest as both logo and identity.mark. It is therefore a masthead and navigation mark, not a decorative hero image attached to this page. The wider canopy.svg asset remains available later in this page only as authored media inside a feature-band specimen.

The Two Manifests

Grove publishing is governed by two different manifests that answer two different questions. The field-level content/groves/manifest.yaml owns the front door to the Groves field: its collection identity, entry presentation, and the explicit order of listed Groves. The manifest.yaml inside an individual Grove owns that Grove's local identity and behavior: its name, navigation, visibility, Ground, footer, logo, and related metadata.

The distinction prevents filesystem discovery from becoming accidental publishing policy. A Grove can exist and remain directly routable without being admitted to the /groves front door when its individual manifest sets visibility: unlisted. The Musewoods Resonance Grove uses that path intentionally. The separate content/resonance/manifest.yaml is not a third Grove manifest; it belongs to the cross-field Resonance circulation layer and must not be folded into Grove discovery or field navigation.

Two Manifests, Side By Side

The local site contract

name: The Musewoods Field Manual
kind: grove
visibility: listed
logo: images/logo.png
identity:
  mark: images/logo.png
navigation_groups:
  - id: foundations
    label: Foundations
navigation:
  - page: index
    label: Start
    group: foundations

content/groves/<slug>/manifest.yaml owns the local site. The manifest validator rejects unsupported keys rather than synthesizing missing behavior, because identity, visibility, and navigation are publishing decisions rather than presentation defaults.

The Groves Arrival

The field-level front door (/groves) is not a single view of the field — it holds four distinct jobs, each answering a different question about the same underlying entries (lib/groves/field-entry.mjs, lib/groves/woods-model.mjs):

  • The Woods — What lives here? The canonical, identity-oriented

presentation: one spacious entry per Grove, its own title, description, and Now Growing. The default view.

  • Terrain — What territory do they share? Groves grouped by the

shared territory they opt into (field.terrain, validated against the GROVE_TERRAINS registry in lib/groves/terrain.mjs). A Grove may inhabit more than one terrain, or none.

  • Directory — Where is the Grove I need? The complete, compact,

retrieval-oriented index — the original field-entry presentation, unchanged, now one of three arrival views.

  • The Canopy — What is alive right now? Not a fourth listing mode. A

quiet, present-tense read of the Woods, rendered server-side directly in the route (canopyModel, app/groves/[[...slug]]/page.tsx): a real Grove count, held as quiet contextual metadata, and a bounded slice of the Woods' current Now Growing — its principal, most visually emphasized content.

Search the Woods (searchGroveEntries) is one shared query that filters The Woods, Terrain, and Directory consistently — it is not a fifth view, and it shares one compositional region with the view switcher (GrovesArrival.tsx, [data-groves-controls]) rather than living as a separate toolbar.

Now Growing is the living-edge primitive this front door depends on. A Grove's own manifest may declare field.grow: { title, status } — its current inquiry, not a description of what the Grove is. Every surface that shows Now Growing (a Grove's own field-entry, The Woods, Terrain, and The Canopy) reads the same field.grow value through the same model; none of them derive or hardcode their own copy. A Grove with no field.grow simply contributes nothing to Now Growing anywhere — never a fabricated inquiry.

Local Navigation Is One Normalized Model

Declared groups, one renderer

Canonical grouped navigation declares navigation_groups as an ordered id/label registry and assigns every navigation: entry to one declared group id. Group ids are unique, every group must be non-empty, group order must match first appearance, and each group's entries remain contiguous. The Field Manual now uses this form because Navigation and Resonance expanded it to twelve destinations.

Both shapes normalize through lib/groves/navigation.mjs into one GroveNavigationModel; mode is derived and the renderer receives only the normalized entries/groups with resolved hrefs. Legacy inline group strings are still accepted by the compatibility layer and normalized through the same validation rules, but new manifests should author navigation_groups.

The Page Pipeline

  1. Discovery

    Each first-level directory under content/groves/ is a Grove and each direct .md file inside it is a page. Discovery remains shallow; directories such as images/ and artifacts/ belong to the Grove's local asset universe, not to page routing.

  2. Parse

    parseGrovePage reuses the structural Storyboard parser: one document H1, **Key:** value fields, and ordered semantic blocks such as prose, list, quote, table, code, Mermaid, image, and Math ({{math: ...}} / :::math, AsciiMath rendered as sanitized MathML). Grove normalization then interprets each authored section through the Grove motif vocabulary.

  3. Validate

    validateGroveMotif checks structural contracts such as required fields, item cardinality, and bounded motif vocabularies. Structural impossibilities fail loudly; density and editorial taste remain authoring concerns unless a specific fit rule has been encoded as a warning.

  4. Resolve

    Relative assets are resolved inside the Grove's own directory. Collection motifs can resolve content from another Musewoods field at build time by reference, preserving the other field as the source of record rather than copying its content into the Grove.

  5. Render

    GroveShell establishes the local identity, navigation, and Ground boundary, while the Grove motif registry selects the component responsible for each section. Shared editorial and analytical motifs still use their common semantic models; the Grove host contributes the surrounding editorial treatment.

An Authored Artifact

Six boxes connected by arrows: Filesystem, Manifest, Parser, Normalize, Validate, Render.

An artifact gives an authored image spatial authority while keeping ownership clear. Musewoods controls the caption, safe area, and surrounding rule, but the asset itself remains authored media: the renderer does not darken, invert, or recolor an SVG simply because the Grove is on Forest Floor. System-owned marks and interface surfaces consume Ground tokens; authored imagery keeps its own visual identity.

Ground

Concernsoilforest-floor
EnvironmentWarm paper and inkEarthy charcoal, warm ivory, moss, seed, mineral
Chosen whenno Ground override is authoredground.mode: forest-floor
Token modelshared semantic Ground rolesthe same roles, re-toned
Component ruleconsume semantic tokensconsume semantic tokens; do not branch on the Ground name
Analytical pairingchart series identity remains stable; surrounding surface follows the hostsame rule
Boundarydata-ground on the Grove shelldata-ground on the same shell; unrelated Musewoods surfaces are not globally re-toned

Ground is an authored editorial environment, not browser dark mode and not a reader preference. It is resolved before the Grove is rendered so the first HTML already carries the correct surface rather than flashing through another mode during hydration. A component should therefore consume semantic tokens and remain structurally identical across Grounds; a separate Forest Floor component is normally evidence that the abstraction has leaked presentation into behavior.

For side-by-side inspection, the Grove Presentation Laboratory runs on Soil and the Forest Floor Laboratory exercises the same design discipline on Forest Floor.

The Filesystem, As Owned By The Grove

A Grove's directory is its local authoring boundary. Relative references stay inside that boundary, which makes the package portable and prevents one Grove from depending accidentally on another Grove's private asset tree.

content/groves/musewoods-field-manual/
├── manifest.yaml
├── index.md
├── publishing-fields.md
├── trailheads.md
├── trailmaps.md
├── ...one Markdown file per page
├── images/
│   ├── logo.png            512×512 canopy mark used by masthead/navigation
│   └── canopy.svg          authored wide media specimen
└── artifacts/
    ├── pipeline.svg
    └── reel-01.svg, reel-02.svg, reel-03.svg

A relative authored reference such as **Image:** images/logo.png passes through resolveGroveAssetRef and becomes a bounded /grove-assets/<slug>/... request served by the Grove asset route. The manifest logo contract is stricter than ordinary authored media: the identity mark must satisfy the platform's supported image-format and dimensions contract, while other local image and artifact references primarily need to resolve inside the Grove's asset boundary.

Figure 1

Rendering diagram…

The Shared Media Motifs, In Grove Voice

An abstract woodland canopy of overlapping arcs above a single seed.

One semantic contract, expressed as place

feature-band, quote-panel, and reel share their normalized model and rendering behavior across the fields that host them. The Grove adapter supplies the surrounding spacing, editorial width, accent, and Ground-aware surface; authored media remains untouched inside that frame.

See the analytical primitives

A Voice, Given Room

The strongest extension is often the one we decide not to add because an existing motif already carries the responsibility.

Musewoods extension disciplineField Manual

A Bounded Sequence

First field study, a placeholder.

Three authored studies, navigated as one bounded sequence. Controls and chrome belong to the Grove surface; the authored images retain their own rendering.

Discover.

Frames From A Viewgraph

Developer Guide

Viewgraphs reveal

A viewgraph is the atomic visual unit. The word "slide" is not part of the Musewoods vocabulary.

© Musewoods Press01 / 06

The Field Manual's Viewgraph specimen is reused frame by frame. The reel embeds canonical Viewgraph frames rather than the Viewgraph application shell, so the Grove Ground stops at the viewport and the Viewgraph remains the source of record.

Voices From The Build

"Source should fail where structure becomes impossible, not where an author has merely made an aesthetic choice."

The content check

scripts/validate-content.mjs

Growing Edges

Second-level Grove pages

dormant

The current Grove routing model remains intentionally shallow: one navigation level of pages inside one bounded local site. A second routing level would add hierarchy to discovery, validation, navigation, and asset-relative reasoning, so it should be introduced only if real Groves repeatedly need that structure rather than as speculative flexibility.

Per-Grove Canopy (topology / semantic map)

seed

A separate specification (docs/musewoods-grove-canopy-v1.0.md, docs/grove-canopy-v1.0-specification.md) defines an optional, richer per-Grove interactive front door — a topology and interaction grammar through which a visitor explores one Grove's intellectual structure directly, rather than only through its authored chapter sequence. Do not confuse it with The Canopy described above, which is the field-level /groves front door's present-tense view across all Groves and is already shipped. Neither lib/groves/ nor components/groves/ implements the per-Grove specification today; no Grove renders it, and it should not be presented as available until a registry, normalizer, and validator exist in the codebase.

Groves As Clearing Projections

semantic-projection

A Grove already owns the durable place-like concerns a human-facing Clearing needs: identity, navigation, pages, assets, Ground, and a living editorial edge. The Clearing design therefore treats Grove as the natural projection surface for a subject-centered context field while keeping semantic relations and provenance in a separate cross-field context layer. The Grove remains kind: grove; the context system supplies assembled meaning rather than creating another canonical publishing pipeline.

canonical-ownership

A Clearing-aware Grove should reference or assemble Stories, Journals, Viewgraphs, and other Groves by stable identity and typed relationship. Long-form source remains owned by its canonical field. See Clearing System for the normative boundary.

Groves In Navigation And Resonance

canonical-destination

Trailheads can resolve Grove identity, canonical route, preview, field, and visibility through typed references. The journey stores the relationship, role, and local interpretation; the Grove keeps ownership of its manifest, pages, Ground, navigation, and local assets.

trailmap-reference

A Venture Trailmap may represent a Grove as a node or reference it from another Waymarker when the Grove develops territory that matters to the innovation field. The Trailmap summary explains why the Grove matters in that field; the full Grove remains canonical and opens only when the Explorer chooses deeper reading from the Encounter Lens.

follow-scope

Version 1 admits only two Follow scopes: all of Musewoods and grove:<slug>. That relationship belongs to the Resonance relationship plane, not to manifest.yaml; a Grove must not grow subscriber fields, email verification state, or delivery-provider configuration merely because readers can Follow its inquiry.

For the wider navigation and relationship boundaries, see Trailheads, Venture Trailmaps, and Resonance System.

Elsewhere In Musewoods