Artifact Document Specification
This document outlines the specification for the Artifact data format. All specifications in this document are released as Creative Commons CC0 public domain. You can read more about this license here: https://creativecommons.org/publicdomain/
Document Type
Artifact documents can be specified in multiple formats.
TOML Format
The TOML format adheres to a subset of the TOML format and are documents of the form:
[ART-baz]
partof = "ART-baa"
text = '''
multi-line
description
'''
[ART-foo-bar]
partof = [
"ART-baz",
]
text = '''
multi-line
description
'''
Where partof can be either a single string or a list of strings.
Markdown Format
The markdown format uses extended Commonmark (TODO: link) format. It is of the form:
# REQ-foo
<optional yaml section for metadata>
###
<markdown text>
Where the yaml section is completely optional (the ### can be skipped if it
doesn't need it.
Artifact Types
Instead of ART as defined in Document Type, the user must select from
3 artifact types:
REQ: specifying a requirement.REQcan only haveREQin itspartoffield.SPC: specifying a design specification.SPCcan only haveREQorSPCin itspartoffield.TST: specifying a test of aSPC.TSTcan have any ofREQ,SPCorTSTin itspartoffield.
Automatic Links
The following will be automatically linked:
- parents:
REQ-foowill automatically be apartofREQ-foo-bar - common-prefix for
REQ -> SPC -> TSTlinksREQ-foowill automatically be apartofSPC-fooifREQ-fooexistsSPC-foowill automatically be apartofTST-fooifSPC-fooexists
Linking an artifact in source code
Artifacts can be linked in source code, which "completes" their spc%.
The way to link to an artifact is to place #ART-name anywhere in the source
code file.
Sub Artifacts (subart)
A sub artifact is defined by placing [[.subart]] anywhere in the text field
of an artifact.
Subarts can be linked in source code as well by placing #ART-name.subart
anywhere in the source code file.
A special subart is [[.tst-subart]] which will contribute to both tst% and
spc%.