Skip to content

Improve human-readable SCAD specifications and visual design navigation #163

Description

@brainboxemb

Context

Migration 011 completed the current-generation SCAD baseline and exposed a
documentation-quality follow-up that should not have expanded the migration
itself.

The numbered documentation structure is useful, but a mechanically correct
30-00-specification.md can still be too terse for a human reader. At the
same time, component-local detailed design documents continue to be generated
with images under prod/bld/design/..., while repository-level design pages
often surface only the source design/design.md authority.

Goal

Improve the shared documentation convention so current-generation SCAD
repositories communicate design intent clearly to people without forcing every
tool/library/project into the same specification template.

Human-readable specification

30-00-specification.md is primarily a human-facing document.

The shared convention should require enough explanation that a reader can
understand:

  • why the repository/library/tool exists;
  • what problem its abstraction solves;
  • why the common/naive alternative is harder to read, maintain or reason about;
  • which concepts the user must understand;
  • representative usage/behavior at the level appropriate for that repository;
  • important non-goals and boundaries.

The exact presentation is repository-specific. Use small code examples,
diagrams, rendered images or concrete scenarios where they improve
understanding rather than imposing identical headings.

Examples of the desired explanatory level:

  • Forge: show why raw translate([x, y, z]) forces a reader to decode a vector
    while a semantic move communicates intent directly; explain frame mapping
    separately from simple rotation; show body/remove/keep roles for tagged CSG;
    distinguish Boolean overlap from mechanical clearance in cutters.
  • mechint: explain why one shared interface/object definition prevents mating
    geometry and clearance/profile dimensions from drifting independently.
  • clamps: explain nominal bore, tension/interference and Boolean overlap as
    separate concepts.
  • HUB75: explain mechanical datums/interfaces rather than leaving readers to
    reconstruct them from incidental geometry.

Agent/developer-specific authority may live in AGENTS.md or
20-01-development.md when useful, but it should complement rather than
replace the human explanation.

Generated visual design navigation

Keep component-local design/design.md as source authority.

Where Build publishes a generated readable counterpart with images under
prod/bld/design/..., repository documentation should surface that version
directly as a reading/review surface. A reader should not have to infer the
generated branch/path.

Consider a convention such as:

  • source link = edit/authority;
  • generated Build link = human visual reading/review;
  • repository 40-00-design.md or its index exposes both where available.

Suggested work

  1. update the shared repository/SCAD documentation conventions;
  2. decide whether any agent-specific guidance belongs in the shared AGENTS or
    development-manual convention;
  3. audit the current-generation SCAD repositories for specification depth;
  4. improve each specification according to its own domain/problem, using code
    examples or visuals where useful;
  5. audit 40-00-design.md navigation to generated visual design documents;
  6. qualify the convention on representative repositories before a broader
    rollout.

Boundary

This is follow-up documentation work after Migration 011. It does not reopen
the already-qualified Migration-011 owner or consumer releases and should not be
treated as a reason to manufacture new releases unless a later change actually
needs one.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions