Skip to content

v0.18.0 - Add System Requirements Specification (SYSRS) Domain

Choose a tag to compare

@github-actions github-actions released this 02 Sep 20:57
· 30 commits to dev since this release

Added

  • New sysrs (System Requirements Specification) domain: an aggregator
    document type that ties together existing gol/prb/qa/uc/req/
    rsk/dec/adr/vcr artifacts into one coherent, navigable
    specification via per-section, type-tagged cross-reference lists (e.g.
    ### Goals accepts only GOL bullets, ## Decisions accepts DEC or
    ADR, and the nine ## Requirements H3s plus six ## Other Characteristics H3s each accept only REQ) rather than duplicating
    their content. Dispatch-only from day one, with no update_sysrs/
    set_status_sysrs tools of its own — whole-body/line-range updates,
    status changes, classification changes, and deletions all go through
    the existing generic update/set_status/set_classification/
    delete tools (type="sysrs"). Ships 7 tools (create_sysrs,
    parse_sysrs, list_sysrs, get_sysrs, get_sysrs_example,
    get_sysrs_template, validate_sysrs), 3 resources
    (specmgr://sysrs/schema, specmgr://sysrs/example,
    specmgr://sysrs/template), and 2 prompts (create_sysrs,
    update_sysrs) (GitHub issue #32).

  • New specmgr://config resource: reports, for all twelve document
    domains, the resolved absolute base directory and whether the domain's
    SPECMGR_*_DIR environment variable is explicitly set, so a client can
    self-diagnose a working-directory-relative base-directory
    misconfiguration. Only the twelve known env var names are ever read
    (never os.environ wholesale), so no unrelated secret is ever
    disclosed. The "Add to OpenCode" README example now shows two
    alternatives for pinning the resolved base directory — uv/uvx's
    --directory flag, or explicit SPECMGR_*_DIR environment variables in
    the MCP client config — and documents the previously-missing
    SPECMGR_FEAT_DIR variable (GitHub issue #51).

  • create_uc/update_uc MCP prompts for the uc (Use Case) domain,
    mirroring the req domain's prompt pattern and including
    set_classification guidance (GitHub issue #57).

Fixed

  • format_text()/format_markdown_document() (models/md/_markdown.py),
    and transitively every domain's parse_<d>/create_<d>/validate_<d>/
    update path plus the mdformat CLI command and MCP tool, now render a
    thematic break (---, ***, ___, or any other CommonMark-valid
    variant) as a literal --- instead of mdformat's hardcoded 70-character
    underscore line ("_" * 70, not otherwise configurable upstream — see
    hukkin/mdformat#69). Fixed by wiring the third-party
    mdformat-simple-breaks plugin (pinned exactly, ==0.1.0) into the
    shared mdformat.text(...) call via its mdformat.parser_extension
    entry point (GitHub issue #47).