spec: render frontmatter edges as a Related Artifacts body section - #219
Conversation
Skill Eval ResultsMode:
|
1 similar comment
Skill Eval ResultsMode:
|
d3b5ae9 to
9224c75
Compare
Skill Eval ResultsMode:
|
9224c75 to
e4cf20b
Compare
Code review —
|
Skill Eval ResultsMode:
|
Frontmatter edges are machine-readable only -- a reader of the raw markdown or the rendered docs page never sees which ADRs a spec implements or which capabilities it requires, so downstream projects hand-write ad-hoc "Related ADRs" header lines in inconsistent shapes (found in every audited downstream repo). Give the template a canonical home for that information: a Related Artifacts section that mirrors the frontmatter edges, one bullet per target, regenerated whenever edges change. 💘 Generated with Crush Assisted-by: Crush:glm-5.3
…path Two defects in the Related Artifacts section: The heading collided with the one /sdd:docs already appends. Both transform-openspecs.js and the vendored Docusaurus plugin emit a generated '## Related Artifacts' mini-DAG at the foot of every spec and design page, so an authored section under the same name gave every rendered page two identical H2s -- duplicate anchors and a doubled TOC entry. Renamed to '## Graph Edges', matching the repo's own edge vocabulary. The Implements example pointed at ../../../adr/, singular. The ADR directory is docs/adrs/, so every spec seeded from this template shipped a dead link -- and PR #217 adds a validation rule requiring exactly the links this template breaks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
e4cf20b to
36807f4
Compare
Skill Eval ResultsMode:
|
Third of five authoring-skill hardening PRs from the downstream audit.
Problem
Frontmatter edges (
implements/requires/extends/supersedes) are machine-readable only. A human reading the raw markdown or the rendered docs page never sees the graph, so downstream projects hand-write their own "Related ADRs" header lines — and in every repo audited (msgbrowse's 20 specs, plus older plugin-generated projects) those lines drifted into at least three inconsistent shapes: some linked, some plain text, some with titles in the link text, some absent entirely.Change
The spec.md template gains a canonical
## Related Artifactssection immediately after the H1 that mirrors the frontmatter edges — one bullet per edge target, naming the edge verb and linking the target. A MUST rule requires it whenever edges exist and requires regenerating it in the same pass whenever edges change on update ("a stale section is a lie about the graph"); it's omitted entirely when the spec declares no edges.New specs get the section for free from the template; existing specs pick it up on their next
/sdd:spec --update.Verification
scripts/check-structure.shpasses; template-only change.🤖 This was posted autonomously by
glm-5.3using Crush.