Analysis

All elements

Table

ID

Title

Type

ART_SCL_NEEDS_JSON

Sphinx-CodeLinks needs.json file

artifact

ART_SN_NEEDS_JSON

Sphinx-Needs needs.json file

artifact

ART_SPHINX_RST

rst file

artifact

ART_STR_JUNIT_XML

JUnit XML test result file

artifact

ART_UBC_NEEDS_JSON

ubc needs.json file

artifact

CHECK_SN_NO_DYN

Do not use dynamic functions

restriction

CHECK_UBC_NO_DYN

Do not use dynamic functions

restriction

CHECK_UBC_NO_LIST2NEEDS

Do not use list2needs

restriction

CHECK_UBC_RST_WORKSPACE

Do not use/reference rst files outside the ubproject workspace/scope

restriction

ER_FILES_IGNORED

Needed folders/files are ignored

fault

ER_SN_CODE_ERR

Programmatic errors in rst/md files result in ignored Traceability objects

fault

ER_SN_CONSTRAINT_FAIL_SILENTLY

Constraint check fails silently

fault

ER_SN_CONSTRAINT_INCOMPLETE_DATA

Constraint check runs with incomplete data

fault

ER_SN_CONSTRAINT_INVALID_DATA

Constraint check runs with invalid data

fault

ER_SN_CONSTRAINT_NOT_CHECKED

Constraint not checked during build

fault

ER_SN_CONSTRAINT_WRONG_DATA

Constraint check runs with wrong data

fault

ER_SN_CONTENT_SYNTAX

Content contains syntax errors

fault

ER_SN_DATA_INVALID

Invalid meta-data in rst/md files leads to ignored Traceability objects

fault

ER_SN_DEAD_LINK_FALSE_POSITIVE

Dead link false positive

fault

ER_SN_DEAD_LINK_NOT_DETECTED

Dead link not detected

fault

ER_SN_DUPLICATE_ID

Duplicate ID is not detected

fault

ER_SN_DYN_INVALID

Dynamic functions return invalid meta-data

fault

ER_SN_DYN_INVALID2

Function returns invalid value

fault

ER_SN_DYN_NO_EXEC

Function gets not executed

fault

ER_SN_DYN_NO_VALUE

Function returns no value

fault

ER_SN_DYN_WRONG

Dynamic functions return wrong meta-data

fault

ER_SN_DYN_WRONG_CALC

Function returns wrong calculated values

fault

ER_SN_EXPORT_JSON_CORRUPTED

Exported needs.json file is corrupted

fault

ER_SN_EXPORT_JSON_FAIL_SILENTLY

Exporting needs.json fails silently

fault

ER_SN_EXPORT_JSON_NOT_VALID

Exported needs.json file is not valid

fault

ER_SN_EXTEND_FAIL_SILENTLY

Bulk modification failes silently

fault

ER_SN_EXTEND_NOT_COMPLETED

Bulk modification of needs is not completed

fault

ER_SN_EXTEND_NOT_VALID

Bulk modification of needs is not valid

fault

ER_SN_ID_ALREADY_EXISTS

ID already exists

fault

ER_SN_ID_FORMAT_INVALID

ID format is invalid

fault

ER_SN_ID_GENERATION_FAILED

ID generation failed

fault

ER_SN_ID_LENGTH_INVALID

ID length is invalid

fault

ER_SN_IMPORT_NOT_ACCESSIBLE

Importing needs is not accessible

fault

ER_SN_IMPORT_NOT_COMPLETED

Importing needs is not completed

fault

ER_SN_IMPORT_NOT_VALID

Importing needs is not valid

fault

ER_SN_INVALID_LINK_TYPE

Invalid link type used in a need

fault

ER_SN_INVALID_LINK_TYPE_VALUE

Link target value violates link schema

fault

ER_SN_INVALID_OPTION

Invalid field used in a need

fault

ER_SN_INVALID_OPTION_VALUE

Field value does not match declared schema

fault

ER_SN_INVALID_STATUS

Invalid status used in a need

fault

ER_SN_JSON_CONTENT_COR

Traceability objects content corrupted

fault

ER_SN_JSON_COR

Traceability objects meta-data corrupted

fault

ER_SN_JSON_CORRUPTED

Corrupted external needs.json file

fault

ER_SN_JSON_FILTER

Invalid or incorrect filters used for external needs.json

fault

ER_SN_JSON_LINK_COND_DRIFT

Exported link conditions differ from runtime evaluation

fault

ER_SN_JSON_LINK_COND_MISSING

Link conditions missing in needs.json

fault

ER_SN_JSON_LINKS_COR

Traceability objects links corrupted

fault

ER_SN_JSON_MIS

Objects missing in needs.json

fault

ER_SN_JSON_NOT_FOUND

Missing external needs.json file

fault

ER_SN_LAY_META_MIS

Meta-data missing

fault

ER_SN_LAY_META_WRONG

Wrong meta-data is used

fault

ER_SN_LAYOUT_INCORRECT_INFO

Layout leads to incorrect information

fault

ER_SN_LAYOUT_INCORRECT_RENDERING

Layout leads to incorrect rendering

fault

ER_SN_LAYOUT_MISSING_INFO

Layout leads to missing information

fault

ER_SN_LINK_COND_EVAL_WRONG

Condition evaluates to the wrong result

fault

ER_SN_LINK_COND_HIDES_SAFE

Condition hides a safety-relevant link

fault

ER_SN_LINK_COND_NOT_PARSED

Condition opt-in missing

fault

ER_SN_LINK_COND_PARSE

Condition expression parse error

fault

ER_SN_LINK_TARGET_NOT_FOUND

Link target not found

fault

ER_SN_LINK_TARGET_NOT_VALID

Link target is not valid

fault

ER_SN_LINKS_EXT_COR

External needs corrupted

fault

ER_SN_LINKS_MISSING

Links missing

fault

ER_SN_LINKS_NO_BACK

Back-links are not set

fault

ER_SN_LINKS_NO_EXT

External needs not found

fault

ER_SN_LINKS_NO_TARGET

Internal target link is not found

fault

ER_SN_MANUAL_ID_EXISTS

Manual ID already exists

fault

ER_SN_MANUAL_ID_FORMAT_INVALID

Manual ID format is invalid

fault

ER_SN_MANUAL_ID_LENGTH_INVALID

Manual ID length is invalid

fault

ER_SN_META_INVALID

Sphinx-Needs data not valid

fault

ER_SN_META_NOT_COMPLIANT

Sphinx-Needs data is not process-compliant

fault

ER_SN_OPTION_NOT_ALLOWED

Field value is not allowed

fault

ER_SN_PERMALINK_FAIL_SILENTLY

Permalink generation fails silently

fault

ER_SN_PERMALINK_NON_EXISTING

Permalink links to non-existing need

fault

ER_SN_PERMALINK_NOT_VALID

Permalink is not valid

fault

ER_SN_PERMALINK_WRONG_NEED

Permalink links to wrong need

fault

ER_SN_SCHEMA_DISABLED

Schema validation silently disabled

fault

ER_SN_SCHEMA_INVALID

Schema definition itself is invalid

fault

ER_SN_SCHEMA_NETWORK_MISS

Network validation misses indirect links

fault

ER_SN_SCHEMA_NOT_REPORTED

Schema violation not surfaced in build

fault

ER_SN_SCHEMA_SELECT_WRONG

Schema ``select`` does not match the intended needs

fault

ER_SN_SCHEMA_WRONG_SEVERITY

Schema violation wrongly suppressed via severity

fault

ER_SN_SER_AUTH

Authentication issues with needsservice

fault

ER_SN_SER_DOWN

External service unreachable by needsservice

fault

ER_SN_SER_INVALID

needsservice unable to process data from external service

fault

ER_SN_SYN_ER

Syntax errors in rst/md files cause Traceability objects to be ignored

fault

ER_SN_TEMPLATE_FILE_INVALID

Template file is not a valid Jinja2 template

fault

ER_SN_TEMPLATE_FILE_NOT_FOUND

Template file not found

fault

ER_SN_TEMPLATE_FILE_SYNTAX

Template file contains syntax errors

fault

ER_SN_TEMPLATE_NEED_FILE_INVALID

Template file is not a valid Jinja2 template

fault

ER_SN_TEMPLATE_NEED_FILE_NOT_FOUND

Template file not found

fault

ER_SN_TEMPLATE_NEED_FILE_SYNTAX

Template file contains syntax errors

fault

ER_SN_TYPED_FIELD_ENUM_MISS

Enum constraint not enforced

fault

ER_SN_TYPED_FIELD_RANGE_MISS

Range constraint not enforced

fault

ER_SN_TYPED_FIELD_TYPE_MISS

Schema type mismatch not detected

fault

ER_SN_TYPED_LINK_CARD_MISS

Link cardinality not enforced

fault

ER_SN_TYPED_LINK_TARGET_WRONG

Typed link accepts wrong target type

fault

ER_SPH_CSV_WRONG

CSV table content is imported incorrectly

fault

ER_SPH_DIRHTML_WRONG

Directory HTML output has a wrong structure

fault

ER_SPH_EPUB_WRONG

ePub output is incomplete or invalid

fault

ER_SPH_FIGURE_WRONG

Figure caption or image is wrong or missing

fault

ER_SPH_HTML_WRONG

HTML output is incomplete or incorrect

fault

ER_SPH_HYPERLINK_BROKEN

Named hyperlink resolves to wrong or broken target

fault

ER_SPH_IMAGE_MISSING

Image is missing or not copied to the output

fault

ER_SPH_INCLUDE_WRONG

Wrong or missing file is included silently

fault

ER_SPH_LATEX_WRONG

LaTeX output is incomplete or incorrect

fault

ER_SPH_LISTTABLE_WRONG

List table rows or columns are rendered incorrectly

fault

ER_SPH_LITINCLUDE_WRONG

Wrong content or line range is included

fault

ER_SPH_SINGLEHTML_WRONG

Single-file HTML output is incomplete or incorrect

fault

ER_SPH_STALE_BUILD

Incremental build leaves stale or incomplete output

fault

ER_SPH_TABLE_GRID_WRONG

Grid table spans are rendered incorrectly

fault

ER_SPH_TABLE_SIMPLE_WRONG

Simple table cells are misparsed

fault

ER_SPH_TABLE_WRONG

Table title or rows are rendered incorrectly

fault

ER_SPH_TOCTREE_MISSING

Document is missing from the toctree

fault

ER_SPH_WRONG_ACCESS

Access to files/folders not given

fault

ER_SPH_WRONG_ENCODING

Needed files/folders have not supported encoding

fault

ER_STR_CASE_ID_COLLISION

Test case ID collision

fault

ER_STR_CASE_MISSING

Test case need is not created

fault

ER_STR_CASE_WRONG_DATA

Test case need contains wrong data

fault

ER_STR_CUSTOM_TYPE_IGNORED

Custom type is not applied to imported needs

fault

ER_STR_CUSTOM_TYPE_PREFIX_COLLISION

Custom type ID prefix collision with existing needs

fault

ER_STR_DISPLAY_EMPTY

Test results table is empty despite imported data

fault

ER_STR_ENV_MISSING

Environment need is not created

fault

ER_STR_PROP_LINK_MISSING

Property link is not created

fault

ER_STR_PROP_LINK_WRONG

Property link points to wrong target

fault

ER_STR_PROP_TYPE_UNDECLARED

Undeclared property link type causes silent failure

fault

ER_STR_STATUS_MISSING

Test result status is not detected

fault

ER_STR_STATUS_WRONG

Test result status is incorrectly classified

fault

ER_STR_SUITE_ID_COLLISION

Test suite ID collision

fault

ER_STR_SUITE_MISSING

Test suite need is not created

fault

ER_STR_XML_PARSE

JUnit XML file cannot be parsed

fault

ER_STR_XML_SCHEMA

JUnit XML file contains unexpected schema

fault

ER_UBC_AGENT_SKILL_STALE

Skill out of sync with qualified configuration

fault

ER_UBC_CROSSCHECK_FALSE_NEG

Divergence not detected (false negative)

fault

ER_UBC_DIFF_DEPTH_CUT

Impact depth truncates the graph

fault

ER_UBC_DIFF_DIR_WRONG

Wrong direction omits incoming impact

fault

ER_UBC_DIFF_DIRTY

Uncommitted local edits not covered

fault

ER_UBC_FORMAT_ERRORS

Format introduces errors

fault

ER_UBC_JSON_INCOMPLETE

Incomplete data

fault

ER_UBC_LINTING_NOT_COVERED

Not covered format

fault

ER_UBC_SCHEMA_DIVERGE

Schema rule set diverges from Sphinx-Needs

fault

ER_UBC_SCHEMA_EXIT_ZERO

Safety violation reported only as warning

fault

ER_UBC_SCHEMA_NO_RULES

Schema rules not loaded

fault

ER_UBC_VAL_FORMAT

Unknown file format

fault

ER_UBC_VAL_INCOMPLETE

Incomplete Validation

fault

FAULT_SCL_1

Traceability objects are not detected in supported languages

fault

FAULT_SCL_2

Sphinx-codelinks halucinates traceability objects

fault

FAULT_SCL_C_1

Traceability objects are not detected in C language

fault

FAULT_SCL_C_2

Sphinx-codelinks halucinates traceability objects in C

fault

FAULT_SCL_CLI_ANALYZE_1

CLI integration fails silently

fault

FAULT_SCL_CLI_ANALYZE_2

Sphinx-codelinks halucinates marked content

fault

FAULT_SCL_CLI_ANALYZE_3

Sphinx-codelinks misses marked content

fault

FAULT_SCL_CLI_DISCOVER_1

Specifying a root directory fails

fault

FAULT_SCL_CLI_DISCOVER_2

Sphinx-codelinks discovers files outside the specified root directory

fault

FAULT_SCL_CLI_WRITE_1

Exporting marked content fails

fault

FAULT_SCL_CLI_WRITE_2

Sphinx-codelinks exports wrong content

fault

FAULT_SCL_CLI_WRITE_3

Exported content is malformed

fault

FAULT_SCL_CMT

Customized comment styles are not detected in supported languages

fault

FAULT_SCL_CPP_1

Traceability objects are not detected in C++ language

fault

FAULT_SCL_CPP_2

Sphinx-codelinks halucinates traceability objects in C++

fault

FAULT_SCL_LNK_1

Linking code to existing need items fails

fault

FAULT_SCL_LNK_2

Sphinx-codelinks links code to wrong need items

fault

FAULT_SCL_PY_1

Traceability objects are not detected in Python language

fault

FAULT_SCL_PY_2

Sphinx-codelinks halucinates traceability objects in Python

fault

FAULT_SCL_RST_EXTRACTION_1

Extracting reStructuredText from comments fails

fault

FAULT_SCL_RST_EXTRACTION_2

Sphinx-codelinks extracts wrong reStructuredText blocks

fault

FAULT_SCL_RST_EXTRACTION_3

Extracted reStructuredText blocks are malformed

fault

FE_SCL_C

C Language Support

feature

FE_SCL_CLI_ANALYZE

Analyze marked content via CLI interface

feature

FE_SCL_CLI_DISCOVER

Discover the filepaths a specified root directory via CLI interface

feature

FE_SCL_CLI_WRITE

Export marked content to other formats via CLI interface

feature

FE_SCL_CMT

Customized comment styles

feature

FE_SCL_CPP

C++ Language Support

feature

FE_SCL_DEF

Define new traceability objects in source code

feature

FE_SCL_LNK

Link code to existing need items

feature

FE_SCL_PY

Python Language Support

feature

FE_SCL_RST_EXTRACTION

Extract blocks of reStructuredText embedded within comments

feature

FE_SN_CONTENT_RENDER

Display Traceability objects content in Sphinx-Needs

feature

FE_SN_DOCTREE

Generate object representation in Sphinx-Needs

feature

FE_SN_DYN_FUNC

Apply dynamic functions for meta-data computation

feature

FE_SN_JSON

Export needs.json file using Sphinx-Needs

feature

FE_SN_JSON_LINK_CONDITIONS

Link conditions exported to needs.json

feature

FE_SN_LINK

Establish links between Traceability objects in Sphinx-Needs

feature

FE_SN_LINK_CONDITIONS

Conditional link evaluation (NeedLink, parse_conditions)

feature

FE_SN_READ

Read Traceability objects in Sphinx-Needs

feature

FE_SN_SCHEMA_VALIDATION

Declarative schema validation of needs

feature

FE_SN_SET_META

Assign meta-data to Traceability objects in Sphinx-Needs

feature

FE_SN_TEMPLATE_NEED

Enhance Need content using templates in Sphinx-Needs

feature

FE_SN_TEMPLATE_PAGE

Extend page content with templates in Sphinx-Needs

feature

FE_SN_TYPED_FIELDS

Typed need fields with JSON-Schema validation

feature

FE_SN_TYPED_LINK_SCHEMA

Typed link schemas (cardinality and targeting)

feature

FE_SPHINX_ADMONITION_ATTENTION

Attention Admonition

feature

FE_SPHINX_ADMONITION_CAUTION

Caution Admonition

feature

FE_SPHINX_ADMONITION_DANGER

Danger Admonition

feature

FE_SPHINX_ADMONITION_ERROR

Error Admonition

feature

FE_SPHINX_ADMONITION_GENERIC

Generic Admonition

feature

FE_SPHINX_ADMONITION_HINT

Hint Admonition

feature

FE_SPHINX_ADMONITION_IMPORTANT

Important Admonition

feature

FE_SPHINX_ADMONITION_NOTE

Note Admonition

feature

FE_SPHINX_ADMONITION_TIP

Tip Admonition

feature

FE_SPHINX_ADMONITION_WARNING

Warning Admonition

feature

FE_SPHINX_BUILD_HTML_SEARCH

Built-in HTML Search

feature

FE_SPHINX_BUILD_STATIC_FILES

Static File Support

feature

FE_SPHINX_BUILD_THEMING

HTML Theming Support

feature

FE_SPHINX_CONTENT_BLOCKQUOTES

Block Quotes

feature

FE_SPHINX_CONTENT_LINE_BLOCKS

Line Blocks

feature

FE_SPHINX_DIRECTIVE_CODE_BLOCK

Code Block Directive

feature

FE_SPHINX_DIRECTIVE_CONTENTS

Contents Directive (Local ToC)

feature

FE_SPHINX_DIRECTIVE_CSV_TABLE

CSV Table Directive

feature

FE_SPHINX_DIRECTIVE_FIGURE

Figure Directive

feature

FE_SPHINX_DIRECTIVE_IMAGE

Image Directive

feature

FE_SPHINX_DIRECTIVE_INCLUDE

Include Directive

feature

FE_SPHINX_DIRECTIVE_LIST_TABLE

List Table Directive

feature

FE_SPHINX_DIRECTIVE_LITERALINCLUDE

Literal Include Directive

feature

FE_SPHINX_DIRECTIVE_MATH

Math Directive

feature

FE_SPHINX_DIRECTIVE_RAW

Raw Content Directive

feature

FE_SPHINX_DIRECTIVE_RUBRIC

Rubric Directive

feature

FE_SPHINX_DIRECTIVE_TABLE

Table Directive with Title

feature

FE_SPHINX_DIRECTIVE_TOCTREE

Table of Contents Tree Directive (toctree)

feature

FE_SPHINX_INLINE_EMPHASIS

Italicized (Emphasis) Text

feature

FE_SPHINX_INLINE_ESCAPE

Escaped Markup Characters

feature

FE_SPHINX_INLINE_INTERNAL_TARGET

Inline Internal Target

feature

FE_SPHINX_INLINE_LITERAL

Inline Literal (Code) Text

feature

FE_SPHINX_INLINE_NAMED_HYPERLINK

Named Hyperlink Reference

feature

FE_SPHINX_INLINE_STRONG

Bold (Strong) Text

feature

FE_SPHINX_LINK_CITATIONS

Citations

feature

FE_SPHINX_LINK_EXPLICIT_TARGET

Explicit Target Creation

feature

FE_SPHINX_LINK_EXTERNAL

External Hyperlinks

feature

FE_SPHINX_LINK_FOOTNOTES

Footnotes

feature

FE_SPHINX_LINK_IMPLICIT

Implicit Hyperlinks from URLs

feature

FE_SPHINX_LINK_INTERNAL_LABELS

Internal Cross-References to Labels

feature

FE_SPHINX_LISTS_AUTO_NUMBERED

Auto-Numbered Lists

feature

FE_SPHINX_LISTS_BULLETED

Bulleted Lists

feature

FE_SPHINX_LISTS_DEFINITION

Definition Lists

feature

FE_SPHINX_LISTS_ENUMERATED

Numbered (Enumerated) Lists

feature

FE_SPHINX_LISTS_NESTED

Nested Lists

feature

FE_SPHINX_LISTS_OPTION

Option Lists

feature

FE_SPHINX_NEEDS_AUTO_ID

Automatic ID generation

feature

FE_SPHINX_NEEDS_CONFIG_FILES

Configuration via conf.py or an external TOML file

feature

FE_SPHINX_NEEDS_CONFIG_LAYOUTS

Customizable layouts for need presentation

feature

FE_SPHINX_NEEDS_CUSTOMIZABLE_LINKS

Customizable link types

feature

FE_SPHINX_NEEDS_CUSTOMIZABLE_OPTIONS

Customizable need fields

feature

FE_SPHINX_NEEDS_DEFINABLE_TYPES

Definable need types

feature

FE_SPHINX_NEEDS_DIRECTIVE_NEEDBAR

Create a bar chart based on need statistics (needbar)

feature

FE_SPHINX_NEEDS_DIRECTIVE_NEEDEXTEND

Modify existing needs in bulk (needextend)

feature

FE_SPHINX_NEEDS_DIRECTIVE_NEEDFLOW

Render a PlantUML flow diagram of needs (needflow)

feature

FE_SPHINX_NEEDS_DIRECTIVE_NEEDIMPORT

Import needs from an external JSON file (needimport)

feature

FE_SPHINX_NEEDS_DIRECTIVE_NEEDPIE

Create a pie chart based on need statistics (needpie)

feature

FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE

Display needs in a filterable table (needtable)

feature

FE_SPHINX_NEEDS_DYNAMIC_CONSTRAINTS

Legacy constraint checking (needs_constraints)

feature

FE_SPHINX_NEEDS_EXPORT_JSON

JSON builder to export all need data

feature

FE_SPHINX_NEEDS_EXPORT_PERMALINKS

Permalink generation to specific need objects

feature

FE_SPHINX_NEEDS_LINKING_BIDIRECTIONAL

Bidirectional link tracking

feature

FE_SPHINX_NEEDS_LINKING_DEAD_LINK_DETECTION

Dead link detection and warnings

feature

FE_SPHINX_NEEDS_LINKING_DIRECT

Direct linking between needs using IDs

feature

FE_SPHINX_NEEDS_MANUAL_ID

Manual ID assignment

feature

FE_SPHINX_NEEDS_NEED_PARTS

In-content need parts for granular references

feature

FE_SPHINX_NEEDS_STATUS_ENFORCEMENT

Need status enforcement

feature

FE_SPHINX_NEEDS_TAGGING

Tagging support

feature

FE_SPHINX_NEEDS_UNIQUE_ID_ENFORCEMENT

Unique ID enforcement and checks

feature

FE_SPHINX_OUTPUT_DIR_HTML

Directory HTML Output

feature

FE_SPHINX_OUTPUT_EPUB

ePub 3 Output

feature

FE_SPHINX_OUTPUT_GETTEXT

Gettext Message Catalog Output

feature

FE_SPHINX_OUTPUT_HTML

HTML Output

feature

FE_SPHINX_OUTPUT_JSON

JSON Output

feature

FE_SPHINX_OUTPUT_LATEX

LaTeX Output

feature

FE_SPHINX_OUTPUT_MANPAGE

Man Page Output

feature

FE_SPHINX_OUTPUT_SINGLE_HTML

Single-File HTML Output

feature

FE_SPHINX_OUTPUT_TEXT

Plain Text Output

feature

FE_SPHINX_READ

Read-in documents with Sphinx

feature

FE_SPHINX_ROLE_CODE

Code Role

feature

FE_SPHINX_ROLE_DOC

Document Role

feature

FE_SPHINX_ROLE_EMPHASIS

Emphasis Role

feature

FE_SPHINX_ROLE_LITERAL

Literal Role

feature

FE_SPHINX_ROLE_MATH

Inline Math Role

feature

FE_SPHINX_ROLE_NUMREF

Numbered Reference Role

feature

FE_SPHINX_ROLE_REF

Reference Role

feature

FE_SPHINX_ROLE_STRONG

Strong Role

feature

FE_SPHINX_ROLE_SUBSCRIPT

Subscript Role

feature

FE_SPHINX_ROLE_SUPERSCRIPT

Superscript Role

feature

FE_SPHINX_STRUCTURE_DOC_TITLE

Document Title and Subtitle

feature

FE_SPHINX_STRUCTURE_SECTION_TITLES

Section Titles with Underlines

feature

FE_SPHINX_STRUCTURE_TRANSITIONS

Transitions (Horizontal Lines)

feature

FE_SPHINX_TABLES_GRID

Grid Tables

feature

FE_SPHINX_TABLES_SIMPLE

Simple Tables

feature

FE_STR_AUTO_CASES

Auto-generate test case needs

feature

FE_STR_AUTO_SUITES

Auto-generate test suite needs

feature

FE_STR_CUSTOM_TYPES

Configurable need types for imported results

feature

FE_STR_DISPLAY

Filter and display test results

feature

FE_STR_ENV_IMPORT

Import test environment information

feature

FE_STR_JUNIT_IMPORT

Import JUnit XML test results

feature

FE_STR_PROPERTY_LINKS

Map JUnit properties to Sphinx-Needs links

feature

FE_UBC_AGENT_SKILL

Generate AI-agent skill for the project (``ubc agent-skill``)

feature

FE_UBC_BUILD_JSON

Build needs.json

feature

FE_UBC_CACHE

Clean internal caches

feature

FE_UBC_DIFF_GIT

Impact analysis on git changes (``ubc diff git``)

feature

FE_UBC_FORMAT

Format rst files

feature

FE_UBC_JSON_CROSSCHECK

Cross-check needs.json against an independent index (``ubc diff json``)

feature

FE_UBC_LINTING

Check rst files for linting problems

feature

FE_UBC_SCHEMA_VALIDATE

Validate ontology schema (``ubc schema validate``)

feature

FE_UBC_VALIDATE_JSON

Validate needs.json

feature

RE_SCL_CONFIG_IN_SCOPE

Configuration files under version control

restriction

RE_SCL_WARNINGS_BREAK_BUILD

Sphinx warnings break the build

restriction

RE_SN_CLEAN

Clean full build

restriction

RE_SN_JSON_LINK_COND

Export link conditions in needs.json

restriction

RE_SN_LINK_CARDINALITY

Declare cardinality on safety-relevant link types

restriction

RE_SN_SCHEMA_VIOLATION

Use severity "violation" for safety-relevant schema rules

restriction

RE_SN_TEMPLATE_IN_SCOPE

Keep template files in the versioned project scope

restriction

RE_SN_TYPE_FIELDS

Type every extra field via needs.fields schema

restriction

RE_SN_USE_SCHEMA

Use declarative schema validation instead of needs_constraints

restriction

RE_SN_WARNINGS

Warning to Error

restriction

RE_SPHINX_CLEAN

Clean full build

restriction

RE_SPHINX_WARNINGS

Warning to Error

restriction

RE_STR_CUSTOM_TYPE

Use a dedicated custom type for imported test results

restriction

RE_STR_ID_LENGTH

Set ``tr_case_id_length`` and ``tr_suite_id_length`` to avoid collisions

restriction

RE_STR_PROP_LINK_TYPES

Declare all property link types in ``tr_property_link_types``

restriction

RE_UBC_CROSSCHECK_CI

Run needs.json cross-check in CI and fail on any diff

restriction

RE_UBC_DIFF_DIRECTION_BOTH

Run ``ubc diff git`` with ``--impact-direction both``

restriction

RE_UBC_DIFF_MIN_DEPTH

Run ``ubc diff git`` with sufficient impact depth

restriction

RE_UBC_FORMAT_CHECK_ONLY

Run ``ubc format`` in check mode only in CI

restriction

RE_UBC_SCHEMA_SEVERITY_ERROR

Schema violations must cause a non-zero exit code

restriction

RE_UBC_VERSION_PIN

Pin ``ubc`` and ``sphinx-needs`` to compatible releases

restriction

TOOL_SCL

Sphinx-CodeLinks

tool

TOOL_SN

Sphinx-Needs

tool

TOOL_SPHINX

Sphinx

tool

TOOL_STR

Sphinx-Test-Reports

tool

TOOL_UBC

ubc

tool

UC_SW_API

Document SW Detail Design (SW API)

usecase

UC_SW_ARCH

Document SW architecture

usecase

UC_SW_QA

Document software qualification tests and results

usecase

UC_SW_REQ

Document software requirements

usecase

UC_UNIT_TEST

Document SW Unit test cases

usecase

UC_UNIT_TEST_RESULTS

Document Test results of SW Unit tests

usecase

Flowchart

@startuml

' Nodes definition 

file "<size:12>Artifact</size>\n**Sphinx-**\n**CodeLinks**\n**needs.json file**\n<size:10>ART_SCL_NEEDS_JSON</size>" as ART_SCL_NEEDS_JSON [[../tools/sphinx-codelinks/artifacts.html#ART_SCL_NEEDS_JSON]] #LightBlue
rectangle "<size:12>Feature</size>\n**Define new**\n**traceability**\n**objects in**\n**source code**\n<size:10>FE_SCL_DEF</size>" as FE_SCL_DEF [[../tools/sphinx-codelinks/features.html#FE_SCL_DEF]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects are not**\n**detected in**\n**supported**\n**languages**\n<size:10>FAULT_SCL_1</size>" as FAULT_SCL_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**halucinates**\n**traceability**\n**objects**\n<size:10>FAULT_SCL_2</size>" as FAULT_SCL_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_2]] #Pink
}
rectangle "<size:12>Feature</size>\n**C Language**\n**Support**\n<size:10>FE_SCL_C</size>" as FE_SCL_C [[../tools/sphinx-codelinks/features.html#FE_SCL_C]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects are not**\n**detected in C**\n**language**\n<size:10>FAULT_SCL_C_1</size>" as FAULT_SCL_C_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_C_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**halucinates**\n**traceability**\n**objects in C**\n<size:10>FAULT_SCL_C_2</size>" as FAULT_SCL_C_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_C_2]] #Pink
}
rectangle "<size:12>Feature</size>\n**C++ Language**\n**Support**\n<size:10>FE_SCL_CPP</size>" as FE_SCL_CPP [[../tools/sphinx-codelinks/features.html#FE_SCL_CPP]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects are not**\n**detected in C++**\n**language**\n<size:10>FAULT_SCL_CPP_1</size>" as FAULT_SCL_CPP_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CPP_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**halucinates**\n**traceability**\n**objects in C++**\n<size:10>FAULT_SCL_CPP_2</size>" as FAULT_SCL_CPP_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CPP_2]] #Pink
}
rectangle "<size:12>Feature</size>\n**Python Language**\n**Support**\n<size:10>FE_SCL_PY</size>" as FE_SCL_PY [[../tools/sphinx-codelinks/features.html#FE_SCL_PY]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects are not**\n**detected in**\n**Python language**\n<size:10>FAULT_SCL_PY_1</size>" as FAULT_SCL_PY_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_PY_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**halucinates**\n**traceability**\n**objects in**\n**Python**\n<size:10>FAULT_SCL_PY_2</size>" as FAULT_SCL_PY_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_PY_2]] #Pink
}
rectangle "<size:12>Feature</size>\n**Customized**\n**comment styles**\n<size:10>FE_SCL_CMT</size>" as FE_SCL_CMT [[../tools/sphinx-codelinks/features.html#FE_SCL_CMT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Customized**\n**comment styles**\n**are not**\n**detected in**\n**supported**\n**languages**\n<size:10>FAULT_SCL_CMT</size>" as FAULT_SCL_CMT [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CMT]] #Pink
}
rectangle "<size:12>Feature</size>\n**Link code to**\n**existing need**\n**items**\n<size:10>FE_SCL_LNK</size>" as FE_SCL_LNK [[../tools/sphinx-codelinks/features.html#FE_SCL_LNK]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Linking code to**\n**existing need**\n**items fails**\n<size:10>FAULT_SCL_LNK_1</size>" as FAULT_SCL_LNK_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_LNK_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks links**\n**code to wrong**\n**need items**\n<size:10>FAULT_SCL_LNK_2</size>" as FAULT_SCL_LNK_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_LNK_2]] #Pink
}
rectangle "<size:12>Feature</size>\n**Extract blocks**\n**of reStructured**\n**Text embedded**\n**within comments**\n<size:10>FE_SCL_RST_EXTRACTION</size>" as FE_SCL_RST_EXTRACTION [[../tools/sphinx-codelinks/features.html#FE_SCL_RST_EXTRACTION]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Extracting reSt**\n**ructuredText**\n**from comments**\n**fails**\n<size:10>FAULT_SCL_RST_EXTRACTION_1</size>" as FAULT_SCL_RST_EXTRACTION_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_RST_EXTRACTION_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**extracts wrong **\n**reStructuredTex**\n**t blocks**\n<size:10>FAULT_SCL_RST_EXTRACTION_2</size>" as FAULT_SCL_RST_EXTRACTION_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_RST_EXTRACTION_2]] #Pink
rectangle "<size:12>Fault</size>\n**Extracted reStr**\n**ucturedText**\n**blocks are**\n**malformed**\n<size:10>FAULT_SCL_RST_EXTRACTION_3</size>" as FAULT_SCL_RST_EXTRACTION_3 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_RST_EXTRACTION_3]] #Pink
}
rectangle "<size:12>Feature</size>\n**Analyze marked**\n**content via CLI**\n**interface**\n<size:10>FE_SCL_CLI_ANALYZE</size>" as FE_SCL_CLI_ANALYZE [[../tools/sphinx-codelinks/features.html#FE_SCL_CLI_ANALYZE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**CLI integration**\n**fails silently**\n<size:10>FAULT_SCL_CLI_ANALYZE_1</size>" as FAULT_SCL_CLI_ANALYZE_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_ANALYZE_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**halucinates**\n**marked content**\n<size:10>FAULT_SCL_CLI_ANALYZE_2</size>" as FAULT_SCL_CLI_ANALYZE_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_ANALYZE_2]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**misses marked**\n**content**\n<size:10>FAULT_SCL_CLI_ANALYZE_3</size>" as FAULT_SCL_CLI_ANALYZE_3 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_ANALYZE_3]] #Pink
}
rectangle "<size:12>Feature</size>\n**Discover the**\n**filepaths a**\n**specified root**\n**directory via**\n**CLI interface**\n<size:10>FE_SCL_CLI_DISCOVER</size>" as FE_SCL_CLI_DISCOVER [[../tools/sphinx-codelinks/features.html#FE_SCL_CLI_DISCOVER]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Specifying a**\n**root directory**\n**fails**\n<size:10>FAULT_SCL_CLI_DISCOVER_1</size>" as FAULT_SCL_CLI_DISCOVER_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_DISCOVER_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**discovers files**\n**outside the**\n**specified root**\n**directory**\n<size:10>FAULT_SCL_CLI_DISCOVER_2</size>" as FAULT_SCL_CLI_DISCOVER_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_DISCOVER_2]] #Pink
}
rectangle "<size:12>Feature</size>\n**Export marked**\n**content to**\n**other formats**\n**via CLI**\n**interface**\n<size:10>FE_SCL_CLI_WRITE</size>" as FE_SCL_CLI_WRITE [[../tools/sphinx-codelinks/features.html#FE_SCL_CLI_WRITE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Exporting**\n**marked content**\n**fails**\n<size:10>FAULT_SCL_CLI_WRITE_1</size>" as FAULT_SCL_CLI_WRITE_1 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_WRITE_1]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-**\n**codelinks**\n**exports wrong**\n**content**\n<size:10>FAULT_SCL_CLI_WRITE_2</size>" as FAULT_SCL_CLI_WRITE_2 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_WRITE_2]] #Pink
rectangle "<size:12>Fault</size>\n**Exported**\n**content is**\n**malformed**\n<size:10>FAULT_SCL_CLI_WRITE_3</size>" as FAULT_SCL_CLI_WRITE_3 [[../tools/sphinx-codelinks/features.html#FAULT_SCL_CLI_WRITE_3]] #Pink
}
node "<size:12>Tool</size>\n**Sphinx-**\n**CodeLinks**\n<size:10>TOOL_SCL</size>" as TOOL_SCL [[../tools/sphinx-codelinks/index.html#TOOL_SCL]] #0fbcf9
rectangle "<size:12>Restriction</size>\n**Configuration**\n**files under**\n**version control**\n<size:10>RE_SCL_CONFIG_IN_SCOPE</size>" as RE_SCL_CONFIG_IN_SCOPE [[../tools/sphinx-codelinks/restrictions.html#RE_SCL_CONFIG_IN_SCOPE]] #Orange
rectangle "<size:12>Restriction</size>\n**Sphinx warnings**\n**break the build**\n<size:10>RE_SCL_WARNINGS_BREAK_BUILD</size>" as RE_SCL_WARNINGS_BREAK_BUILD [[../tools/sphinx-codelinks/restrictions.html#RE_SCL_WARNINGS_BREAK_BUILD]] #Orange
file "<size:12>Artifact</size>\n**Sphinx-Needs**\n**needs.json file**\n<size:10>ART_SN_NEEDS_JSON</size>" as ART_SN_NEEDS_JSON [[../tools/sphinx-needs/artifacts.html#ART_SN_NEEDS_JSON]] #LightBlue
rectangle "<size:12>Feature</size>\n**Read**\n**Traceability**\n**objects in**\n**Sphinx-Needs**\n<size:10>FE_SN_READ</size>" as FE_SN_READ [[../tools/sphinx-needs/features.html#FE_SN_READ]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Syntax errors**\n**in rst/md files**\n**cause**\n**Traceability**\n**objects to be**\n**ignored**\n<size:10>ER_SN_SYN_ER</size>" as ER_SN_SYN_ER [[../tools/sphinx-needs/features.html#ER_SN_SYN_ER]] #Pink
rectangle "<size:12>Fault</size>\n**Missing**\n**external**\n**needs.json file**\n<size:10>ER_SN_JSON_NOT_FOUND</size>" as ER_SN_JSON_NOT_FOUND [[../tools/sphinx-needs/features.html#ER_SN_JSON_NOT_FOUND]] #Pink
rectangle "<size:12>Fault</size>\n**Corrupted**\n**external**\n**needs.json file**\n<size:10>ER_SN_JSON_CORRUPTED</size>" as ER_SN_JSON_CORRUPTED [[../tools/sphinx-needs/features.html#ER_SN_JSON_CORRUPTED]] #Pink
rectangle "<size:12>Fault</size>\n**Authentication**\n**issues with**\n**needsservice**\n<size:10>ER_SN_SER_AUTH</size>" as ER_SN_SER_AUTH [[../tools/sphinx-needs/features.html#ER_SN_SER_AUTH]] #Pink
rectangle "<size:12>Fault</size>\n**Invalid meta-**\n**data in rst/md**\n**files leads to**\n**ignored**\n**Traceability**\n**objects**\n<size:10>ER_SN_DATA_INVALID</size>" as ER_SN_DATA_INVALID [[../tools/sphinx-needs/features.html#ER_SN_DATA_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Programmatic**\n**errors in**\n**rst/md files**\n**result in**\n**ignored**\n**Traceability**\n**objects**\n<size:10>ER_SN_CODE_ERR</size>" as ER_SN_CODE_ERR [[../tools/sphinx-needs/features.html#ER_SN_CODE_ERR]] #Pink
rectangle "<size:12>Fault</size>\n**Invalid or**\n**incorrect**\n**filters used**\n**for external**\n**needs.json**\n<size:10>ER_SN_JSON_FILTER</size>" as ER_SN_JSON_FILTER [[../tools/sphinx-needs/features.html#ER_SN_JSON_FILTER]] #Pink
rectangle "<size:12>Fault</size>\n**External**\n**service**\n**unreachable by**\n**needsservice**\n<size:10>ER_SN_SER_DOWN</size>" as ER_SN_SER_DOWN [[../tools/sphinx-needs/features.html#ER_SN_SER_DOWN]] #Pink
rectangle "<size:12>Fault</size>\n**needsservice**\n**unable to**\n**process data**\n**from external**\n**service**\n<size:10>ER_SN_SER_INVALID</size>" as ER_SN_SER_INVALID [[../tools/sphinx-needs/features.html#ER_SN_SER_INVALID]] #Pink
}
rectangle "<size:12>Feature</size>\n**Display**\n**Traceability**\n**objects content**\n**in Sphinx-Needs**\n<size:10>FE_SN_CONTENT_RENDER</size>" as FE_SN_CONTENT_RENDER [[../tools/sphinx-needs/features.html#FE_SN_CONTENT_RENDER]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Content**\n**contains syntax**\n**errors**\n<size:10>ER_SN_CONTENT_SYNTAX</size>" as ER_SN_CONTENT_SYNTAX [[../tools/sphinx-needs/features.html#ER_SN_CONTENT_SYNTAX]] #Pink
}
rectangle "<size:12>Feature</size>\n**Assign meta-**\n**data to**\n**Traceability**\n**objects in**\n**Sphinx-Needs**\n<size:10>FE_SN_SET_META</size>" as FE_SN_SET_META [[../tools/sphinx-needs/features.html#FE_SN_SET_META]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Dynamic**\n**functions**\n**return invalid**\n**meta-data**\n<size:10>ER_SN_DYN_INVALID</size>" as ER_SN_DYN_INVALID [[../tools/sphinx-needs/features.html#ER_SN_DYN_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Dynamic**\n**functions**\n**return wrong**\n**meta-data**\n<size:10>ER_SN_DYN_WRONG</size>" as ER_SN_DYN_WRONG [[../tools/sphinx-needs/features.html#ER_SN_DYN_WRONG]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-Needs**\n**data not valid**\n<size:10>ER_SN_META_INVALID</size>" as ER_SN_META_INVALID [[../tools/sphinx-needs/features.html#ER_SN_META_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Sphinx-Needs**\n**data is not**\n**process-**\n**compliant**\n<size:10>ER_SN_META_NOT_COMPLIANT</size>" as ER_SN_META_NOT_COMPLIANT [[../tools/sphinx-needs/features.html#ER_SN_META_NOT_COMPLIANT]] #Pink
}
rectangle "<size:12>Feature</size>\n**Establish links**\n**between**\n**Traceability**\n**objects in**\n**Sphinx-Needs**\n<size:10>FE_SN_LINK</size>" as FE_SN_LINK [[../tools/sphinx-needs/features.html#FE_SN_LINK]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Back-links are**\n**not set**\n<size:10>ER_SN_LINKS_NO_BACK</size>" as ER_SN_LINKS_NO_BACK [[../tools/sphinx-needs/features.html#ER_SN_LINKS_NO_BACK]] #Pink
rectangle "<size:12>Fault</size>\n**Internal target**\n**link is not**\n**found**\n<size:10>ER_SN_LINKS_NO_TARGET</size>" as ER_SN_LINKS_NO_TARGET [[../tools/sphinx-needs/features.html#ER_SN_LINKS_NO_TARGET]] #Pink
rectangle "<size:12>Fault</size>\n**External needs**\n**not found**\n<size:10>ER_SN_LINKS_NO_EXT</size>" as ER_SN_LINKS_NO_EXT [[../tools/sphinx-needs/features.html#ER_SN_LINKS_NO_EXT]] #Pink
rectangle "<size:12>Fault</size>\n**External needs**\n**corrupted**\n<size:10>ER_SN_LINKS_EXT_COR</size>" as ER_SN_LINKS_EXT_COR [[../tools/sphinx-needs/features.html#ER_SN_LINKS_EXT_COR]] #Pink
rectangle "<size:12>Fault</size>\n**Links missing**\n<size:10>ER_SN_LINKS_MISSING</size>" as ER_SN_LINKS_MISSING [[../tools/sphinx-needs/features.html#ER_SN_LINKS_MISSING]] #Pink
}
rectangle "<size:12>Feature</size>\n**Generate object**\n**representation**\n**in Sphinx-Needs**\n<size:10>FE_SN_DOCTREE</size>" as FE_SN_DOCTREE [[../tools/sphinx-needs/features.html#FE_SN_DOCTREE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Meta-data**\n**missing**\n<size:10>ER_SN_LAY_META_MIS</size>" as ER_SN_LAY_META_MIS [[../tools/sphinx-needs/features.html#ER_SN_LAY_META_MIS]] #Pink
rectangle "<size:12>Fault</size>\n**Wrong meta-data**\n**is used**\n<size:10>ER_SN_LAY_META_WRONG</size>" as ER_SN_LAY_META_WRONG [[../tools/sphinx-needs/features.html#ER_SN_LAY_META_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Export**\n**needs.json file**\n**using Sphinx-**\n**Needs**\n<size:10>FE_SN_JSON</size>" as FE_SN_JSON [[../tools/sphinx-needs/features.html#FE_SN_JSON]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Objects missing**\n**in needs.json**\n<size:10>ER_SN_JSON_MIS</size>" as ER_SN_JSON_MIS [[../tools/sphinx-needs/features.html#ER_SN_JSON_MIS]] #Pink
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects meta-**\n**data corrupted**\n<size:10>ER_SN_JSON_COR</size>" as ER_SN_JSON_COR [[../tools/sphinx-needs/features.html#ER_SN_JSON_COR]] #Pink
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects links**\n**corrupted**\n<size:10>ER_SN_JSON_LINKS_COR</size>" as ER_SN_JSON_LINKS_COR [[../tools/sphinx-needs/features.html#ER_SN_JSON_LINKS_COR]] #Pink
rectangle "<size:12>Fault</size>\n**Traceability**\n**objects content**\n**corrupted**\n<size:10>ER_SN_JSON_CONTENT_COR</size>" as ER_SN_JSON_CONTENT_COR [[../tools/sphinx-needs/features.html#ER_SN_JSON_CONTENT_COR]] #Pink
}
rectangle "<size:12>Feature</size>\n**Apply dynamic**\n**functions for**\n**meta-data**\n**computation**\n<size:10>FE_SN_DYN_FUNC</size>" as FE_SN_DYN_FUNC [[../tools/sphinx-needs/features.html#FE_SN_DYN_FUNC]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Function gets**\n**not executed**\n<size:10>ER_SN_DYN_NO_EXEC</size>" as ER_SN_DYN_NO_EXEC [[../tools/sphinx-needs/features.html#ER_SN_DYN_NO_EXEC]] #Pink
rectangle "<size:12>Fault</size>\n**Function**\n**returns invalid**\n**value**\n<size:10>ER_SN_DYN_INVALID2</size>" as ER_SN_DYN_INVALID2 [[../tools/sphinx-needs/features.html#ER_SN_DYN_INVALID2]] #Pink
rectangle "<size:12>Fault</size>\n**Function**\n**returns wrong**\n**calculated**\n**values**\n<size:10>ER_SN_DYN_WRONG_CALC</size>" as ER_SN_DYN_WRONG_CALC [[../tools/sphinx-needs/features.html#ER_SN_DYN_WRONG_CALC]] #Pink
rectangle "<size:12>Fault</size>\n**Function**\n**returns no**\n**value**\n<size:10>ER_SN_DYN_NO_VALUE</size>" as ER_SN_DYN_NO_VALUE [[../tools/sphinx-needs/features.html#ER_SN_DYN_NO_VALUE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Extend page**\n**content with**\n**templates in**\n**Sphinx-Needs**\n<size:10>FE_SN_TEMPLATE_PAGE</size>" as FE_SN_TEMPLATE_PAGE [[../tools/sphinx-needs/features.html#FE_SN_TEMPLATE_PAGE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Template file**\n**not found**\n<size:10>ER_SN_TEMPLATE_FILE_NOT_FOUND</size>" as ER_SN_TEMPLATE_FILE_NOT_FOUND [[../tools/sphinx-needs/features.html#ER_SN_TEMPLATE_FILE_NOT_FOUND]] #Pink
rectangle "<size:12>Fault</size>\n**Template file**\n**is not a valid**\n**Jinja2 template**\n<size:10>ER_SN_TEMPLATE_FILE_INVALID</size>" as ER_SN_TEMPLATE_FILE_INVALID [[../tools/sphinx-needs/features.html#ER_SN_TEMPLATE_FILE_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Template file**\n**contains syntax**\n**errors**\n<size:10>ER_SN_TEMPLATE_FILE_SYNTAX</size>" as ER_SN_TEMPLATE_FILE_SYNTAX [[../tools/sphinx-needs/features.html#ER_SN_TEMPLATE_FILE_SYNTAX]] #Pink
}
rectangle "<size:12>Feature</size>\n**Enhance Need**\n**content using**\n**templates in**\n**Sphinx-Needs**\n<size:10>FE_SN_TEMPLATE_NEED</size>" as FE_SN_TEMPLATE_NEED [[../tools/sphinx-needs/features.html#FE_SN_TEMPLATE_NEED]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Template file**\n**not found**\n<size:10>ER_SN_TEMPLATE_NEED_FILE_NOT_FOUND</size>" as ER_SN_TEMPLATE_NEED_FILE_NOT_FOUND [[../tools/sphinx-needs/features.html#ER_SN_TEMPLATE_NEED_FILE_NOT_FOUND]] #Pink
rectangle "<size:12>Fault</size>\n**Template file**\n**is not a valid**\n**Jinja2 template**\n<size:10>ER_SN_TEMPLATE_NEED_FILE_INVALID</size>" as ER_SN_TEMPLATE_NEED_FILE_INVALID [[../tools/sphinx-needs/features.html#ER_SN_TEMPLATE_NEED_FILE_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Template file**\n**contains syntax**\n**errors**\n<size:10>ER_SN_TEMPLATE_NEED_FILE_SYNTAX</size>" as ER_SN_TEMPLATE_NEED_FILE_SYNTAX [[../tools/sphinx-needs/features.html#ER_SN_TEMPLATE_NEED_FILE_SYNTAX]] #Pink
}
rectangle "<size:12>Feature</size>\n**Definable need**\n**types**\n<size:10>FE_SPHINX_NEEDS_DEFINABLE_TYPES</size>" as FE_SPHINX_NEEDS_DEFINABLE_TYPES [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DEFINABLE_TYPES]] #Gold
rectangle "<size:12>Feature</size>\n**Customizable**\n**need fields**\n<size:10>FE_SPHINX_NEEDS_CUSTOMIZABLE_OPTIONS</size>" as FE_SPHINX_NEEDS_CUSTOMIZABLE_OPTIONS [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_CUSTOMIZABLE_OPTIONS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Invalid field**\n**used in a need**\n<size:10>ER_SN_INVALID_OPTION</size>" as ER_SN_INVALID_OPTION [[../tools/sphinx-needs/features.html#ER_SN_INVALID_OPTION]] #Pink
rectangle "<size:12>Fault</size>\n**Field value**\n**does not match**\n**declared schema**\n<size:10>ER_SN_INVALID_OPTION_VALUE</size>" as ER_SN_INVALID_OPTION_VALUE [[../tools/sphinx-needs/features.html#ER_SN_INVALID_OPTION_VALUE]] #Pink
rectangle "<size:12>Fault</size>\n**Field value is**\n**not allowed**\n<size:10>ER_SN_OPTION_NOT_ALLOWED</size>" as ER_SN_OPTION_NOT_ALLOWED [[../tools/sphinx-needs/features.html#ER_SN_OPTION_NOT_ALLOWED]] #Pink
}
rectangle "<size:12>Feature</size>\n**Customizable**\n**link types**\n<size:10>FE_SPHINX_NEEDS_CUSTOMIZABLE_LINKS</size>" as FE_SPHINX_NEEDS_CUSTOMIZABLE_LINKS [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_CUSTOMIZABLE_LINKS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Invalid link**\n**type used in a**\n**need**\n<size:10>ER_SN_INVALID_LINK_TYPE</size>" as ER_SN_INVALID_LINK_TYPE [[../tools/sphinx-needs/features.html#ER_SN_INVALID_LINK_TYPE]] #Pink
rectangle "<size:12>Fault</size>\n**Link target**\n**value violates**\n**link schema**\n<size:10>ER_SN_INVALID_LINK_TYPE_VALUE</size>" as ER_SN_INVALID_LINK_TYPE_VALUE [[../tools/sphinx-needs/features.html#ER_SN_INVALID_LINK_TYPE_VALUE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Automatic ID**\n**generation**\n<size:10>FE_SPHINX_NEEDS_AUTO_ID</size>" as FE_SPHINX_NEEDS_AUTO_ID [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_AUTO_ID]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**ID generation**\n**failed**\n<size:10>ER_SN_ID_GENERATION_FAILED</size>" as ER_SN_ID_GENERATION_FAILED [[../tools/sphinx-needs/features.html#ER_SN_ID_GENERATION_FAILED]] #Pink
rectangle "<size:12>Fault</size>\n**ID already**\n**exists**\n<size:10>ER_SN_ID_ALREADY_EXISTS</size>" as ER_SN_ID_ALREADY_EXISTS [[../tools/sphinx-needs/features.html#ER_SN_ID_ALREADY_EXISTS]] #Pink
rectangle "<size:12>Fault</size>\n**ID format is**\n**invalid**\n<size:10>ER_SN_ID_FORMAT_INVALID</size>" as ER_SN_ID_FORMAT_INVALID [[../tools/sphinx-needs/features.html#ER_SN_ID_FORMAT_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**ID length is**\n**invalid**\n<size:10>ER_SN_ID_LENGTH_INVALID</size>" as ER_SN_ID_LENGTH_INVALID [[../tools/sphinx-needs/features.html#ER_SN_ID_LENGTH_INVALID]] #Pink
}
rectangle "<size:12>Feature</size>\n**Manual ID**\n**assignment**\n<size:10>FE_SPHINX_NEEDS_MANUAL_ID</size>" as FE_SPHINX_NEEDS_MANUAL_ID [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_MANUAL_ID]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Manual ID**\n**already exists**\n<size:10>ER_SN_MANUAL_ID_EXISTS</size>" as ER_SN_MANUAL_ID_EXISTS [[../tools/sphinx-needs/features.html#ER_SN_MANUAL_ID_EXISTS]] #Pink
rectangle "<size:12>Fault</size>\n**Manual ID**\n**format is**\n**invalid**\n<size:10>ER_SN_MANUAL_ID_FORMAT_INVALID</size>" as ER_SN_MANUAL_ID_FORMAT_INVALID [[../tools/sphinx-needs/features.html#ER_SN_MANUAL_ID_FORMAT_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Manual ID**\n**length is**\n**invalid**\n<size:10>ER_SN_MANUAL_ID_LENGTH_INVALID</size>" as ER_SN_MANUAL_ID_LENGTH_INVALID [[../tools/sphinx-needs/features.html#ER_SN_MANUAL_ID_LENGTH_INVALID]] #Pink
}
rectangle "<size:12>Feature</size>\n**Need status**\n**enforcement**\n<size:10>FE_SPHINX_NEEDS_STATUS_ENFORCEMENT</size>" as FE_SPHINX_NEEDS_STATUS_ENFORCEMENT [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_STATUS_ENFORCEMENT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Invalid status**\n**used in a need**\n<size:10>ER_SN_INVALID_STATUS</size>" as ER_SN_INVALID_STATUS [[../tools/sphinx-needs/features.html#ER_SN_INVALID_STATUS]] #Pink
}
rectangle "<size:12>Feature</size>\n**Tagging support**\n<size:10>FE_SPHINX_NEEDS_TAGGING</size>" as FE_SPHINX_NEEDS_TAGGING [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_TAGGING]] #Gold
rectangle "<size:12>Feature</size>\n**In-content need**\n**parts for**\n**granular**\n**references**\n<size:10>FE_SPHINX_NEEDS_NEED_PARTS</size>" as FE_SPHINX_NEEDS_NEED_PARTS [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_NEED_PARTS]] #Gold
rectangle "<size:12>Feature</size>\n**Unique ID**\n**enforcement and**\n**checks**\n<size:10>FE_SPHINX_NEEDS_UNIQUE_ID_ENFORCEMENT</size>" as FE_SPHINX_NEEDS_UNIQUE_ID_ENFORCEMENT [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_UNIQUE_ID_ENFORCEMENT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Duplicate ID is**\n**not detected**\n<size:10>ER_SN_DUPLICATE_ID</size>" as ER_SN_DUPLICATE_ID [[../tools/sphinx-needs/features.html#ER_SN_DUPLICATE_ID]] #Pink
}
rectangle "<size:12>Feature</size>\n**Display needs**\n**in a filterable**\n**table**\n**(needtable)**\n<size:10>FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE</size>" as FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE]] #Gold
rectangle "<size:12>Feature</size>\n**Render a**\n**PlantUML flow**\n**diagram of**\n**needs**\n**(needflow)**\n<size:10>FE_SPHINX_NEEDS_DIRECTIVE_NEEDFLOW</size>" as FE_SPHINX_NEEDS_DIRECTIVE_NEEDFLOW [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DIRECTIVE_NEEDFLOW]] #Gold
rectangle "<size:12>Feature</size>\n**Create a pie**\n**chart based on**\n**need statistics**\n**(needpie)**\n<size:10>FE_SPHINX_NEEDS_DIRECTIVE_NEEDPIE</size>" as FE_SPHINX_NEEDS_DIRECTIVE_NEEDPIE [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DIRECTIVE_NEEDPIE]] #Gold
rectangle "<size:12>Feature</size>\n**Create a bar**\n**chart based on**\n**need statistics**\n**(needbar)**\n<size:10>FE_SPHINX_NEEDS_DIRECTIVE_NEEDBAR</size>" as FE_SPHINX_NEEDS_DIRECTIVE_NEEDBAR [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DIRECTIVE_NEEDBAR]] #Gold
rectangle "<size:12>Feature</size>\n**Import needs**\n**from an**\n**external JSON**\n**file**\n**(needimport)**\n<size:10>FE_SPHINX_NEEDS_DIRECTIVE_NEEDIMPORT</size>" as FE_SPHINX_NEEDS_DIRECTIVE_NEEDIMPORT [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DIRECTIVE_NEEDIMPORT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Importing needs**\n**is not**\n**completed**\n<size:10>ER_SN_IMPORT_NOT_COMPLETED</size>" as ER_SN_IMPORT_NOT_COMPLETED [[../tools/sphinx-needs/features.html#ER_SN_IMPORT_NOT_COMPLETED]] #Pink
rectangle "<size:12>Fault</size>\n**Importing needs**\n**is not valid**\n<size:10>ER_SN_IMPORT_NOT_VALID</size>" as ER_SN_IMPORT_NOT_VALID [[../tools/sphinx-needs/features.html#ER_SN_IMPORT_NOT_VALID]] #Pink
rectangle "<size:12>Fault</size>\n**Importing needs**\n**is not**\n**accessible**\n<size:10>ER_SN_IMPORT_NOT_ACCESSIBLE</size>" as ER_SN_IMPORT_NOT_ACCESSIBLE [[../tools/sphinx-needs/features.html#ER_SN_IMPORT_NOT_ACCESSIBLE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Modify existing**\n**needs in bulk**\n**(needextend)**\n<size:10>FE_SPHINX_NEEDS_DIRECTIVE_NEEDEXTEND</size>" as FE_SPHINX_NEEDS_DIRECTIVE_NEEDEXTEND [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DIRECTIVE_NEEDEXTEND]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Bulk**\n**modification of**\n**needs is not**\n**completed**\n<size:10>ER_SN_EXTEND_NOT_COMPLETED</size>" as ER_SN_EXTEND_NOT_COMPLETED [[../tools/sphinx-needs/features.html#ER_SN_EXTEND_NOT_COMPLETED]] #Pink
rectangle "<size:12>Fault</size>\n**Bulk**\n**modification**\n**failes silently**\n<size:10>ER_SN_EXTEND_FAIL_SILENTLY</size>" as ER_SN_EXTEND_FAIL_SILENTLY [[../tools/sphinx-needs/features.html#ER_SN_EXTEND_FAIL_SILENTLY]] #Pink
rectangle "<size:12>Fault</size>\n**Bulk**\n**modification of**\n**needs is not**\n**valid**\n<size:10>ER_SN_EXTEND_NOT_VALID</size>" as ER_SN_EXTEND_NOT_VALID [[../tools/sphinx-needs/features.html#ER_SN_EXTEND_NOT_VALID]] #Pink
}
rectangle "<size:12>Feature</size>\n**Direct linking**\n**between needs**\n**using IDs**\n<size:10>FE_SPHINX_NEEDS_LINKING_DIRECT</size>" as FE_SPHINX_NEEDS_LINKING_DIRECT [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_LINKING_DIRECT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Link target not**\n**found**\n<size:10>ER_SN_LINK_TARGET_NOT_FOUND</size>" as ER_SN_LINK_TARGET_NOT_FOUND [[../tools/sphinx-needs/features.html#ER_SN_LINK_TARGET_NOT_FOUND]] #Pink
rectangle "<size:12>Fault</size>\n**Link target is**\n**not valid**\n<size:10>ER_SN_LINK_TARGET_NOT_VALID</size>" as ER_SN_LINK_TARGET_NOT_VALID [[../tools/sphinx-needs/features.html#ER_SN_LINK_TARGET_NOT_VALID]] #Pink
}
rectangle "<size:12>Feature</size>\n**Bidirectional**\n**link tracking**\n<size:10>FE_SPHINX_NEEDS_LINKING_BIDIRECTIONAL</size>" as FE_SPHINX_NEEDS_LINKING_BIDIRECTIONAL [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_LINKING_BIDIRECTIONAL]] #Gold
rectangle "<size:12>Feature</size>\n**Dead link**\n**detection and**\n**warnings**\n<size:10>FE_SPHINX_NEEDS_LINKING_DEAD_LINK_DETECTION</size>" as FE_SPHINX_NEEDS_LINKING_DEAD_LINK_DETECTION [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_LINKING_DEAD_LINK_DETECTION]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Dead link not**\n**detected**\n<size:10>ER_SN_DEAD_LINK_NOT_DETECTED</size>" as ER_SN_DEAD_LINK_NOT_DETECTED [[../tools/sphinx-needs/features.html#ER_SN_DEAD_LINK_NOT_DETECTED]] #Pink
rectangle "<size:12>Fault</size>\n**Dead link false**\n**positive**\n<size:10>ER_SN_DEAD_LINK_FALSE_POSITIVE</size>" as ER_SN_DEAD_LINK_FALSE_POSITIVE [[../tools/sphinx-needs/features.html#ER_SN_DEAD_LINK_FALSE_POSITIVE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Conditional**\n**link evaluation**\n**(NeedLink, pars**\n**e_conditions)**\n<size:10>FE_SN_LINK_CONDITIONS</size>" as FE_SN_LINK_CONDITIONS [[../tools/sphinx-needs/features.html#FE_SN_LINK_CONDITIONS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Condition**\n**expression**\n**parse error**\n<size:10>ER_SN_LINK_COND_PARSE</size>" as ER_SN_LINK_COND_PARSE [[../tools/sphinx-needs/features.html#ER_SN_LINK_COND_PARSE]] #Pink
rectangle "<size:12>Fault</size>\n**Condition**\n**evaluates to**\n**the wrong**\n**result**\n<size:10>ER_SN_LINK_COND_EVAL_WRONG</size>" as ER_SN_LINK_COND_EVAL_WRONG [[../tools/sphinx-needs/features.html#ER_SN_LINK_COND_EVAL_WRONG]] #Pink
rectangle "<size:12>Fault</size>\n**Condition hides**\n**a safety-**\n**relevant link**\n<size:10>ER_SN_LINK_COND_HIDES_SAFE</size>" as ER_SN_LINK_COND_HIDES_SAFE [[../tools/sphinx-needs/features.html#ER_SN_LINK_COND_HIDES_SAFE]] #Pink
rectangle "<size:12>Fault</size>\n**Condition opt-**\n**in missing**\n<size:10>ER_SN_LINK_COND_NOT_PARSED</size>" as ER_SN_LINK_COND_NOT_PARSED [[../tools/sphinx-needs/features.html#ER_SN_LINK_COND_NOT_PARSED]] #Pink
}
rectangle "<size:12>Feature</size>\n**Legacy**\n**constraint**\n**checking (needs**\n**_constraints)**\n<size:10>FE_SPHINX_NEEDS_DYNAMIC_CONSTRAINTS</size>" as FE_SPHINX_NEEDS_DYNAMIC_CONSTRAINTS [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_DYNAMIC_CONSTRAINTS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Constraint not**\n**checked during**\n**build**\n<size:10>ER_SN_CONSTRAINT_NOT_CHECKED</size>" as ER_SN_CONSTRAINT_NOT_CHECKED [[../tools/sphinx-needs/features.html#ER_SN_CONSTRAINT_NOT_CHECKED]] #Pink
rectangle "<size:12>Fault</size>\n**Constraint**\n**check fails**\n**silently**\n<size:10>ER_SN_CONSTRAINT_FAIL_SILENTLY</size>" as ER_SN_CONSTRAINT_FAIL_SILENTLY [[../tools/sphinx-needs/features.html#ER_SN_CONSTRAINT_FAIL_SILENTLY]] #Pink
rectangle "<size:12>Fault</size>\n**Constraint**\n**check runs with**\n**wrong data**\n<size:10>ER_SN_CONSTRAINT_WRONG_DATA</size>" as ER_SN_CONSTRAINT_WRONG_DATA [[../tools/sphinx-needs/features.html#ER_SN_CONSTRAINT_WRONG_DATA]] #Pink
rectangle "<size:12>Fault</size>\n**Constraint**\n**check runs with**\n**incomplete data**\n<size:10>ER_SN_CONSTRAINT_INCOMPLETE_DATA</size>" as ER_SN_CONSTRAINT_INCOMPLETE_DATA [[../tools/sphinx-needs/features.html#ER_SN_CONSTRAINT_INCOMPLETE_DATA]] #Pink
rectangle "<size:12>Fault</size>\n**Constraint**\n**check runs with**\n**invalid data**\n<size:10>ER_SN_CONSTRAINT_INVALID_DATA</size>" as ER_SN_CONSTRAINT_INVALID_DATA [[../tools/sphinx-needs/features.html#ER_SN_CONSTRAINT_INVALID_DATA]] #Pink
}
rectangle "<size:12>Feature</size>\n**Declarative**\n**schema**\n**validation of**\n**needs**\n<size:10>FE_SN_SCHEMA_VALIDATION</size>" as FE_SN_SCHEMA_VALIDATION [[../tools/sphinx-needs/features.html#FE_SN_SCHEMA_VALIDATION]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Schema**\n**validation**\n**silently**\n**disabled**\n<size:10>ER_SN_SCHEMA_DISABLED</size>" as ER_SN_SCHEMA_DISABLED [[../tools/sphinx-needs/features.html#ER_SN_SCHEMA_DISABLED]] #Pink
rectangle "<size:12>Fault</size>\n**Schema**\n**definition**\n**itself is**\n**invalid**\n<size:10>ER_SN_SCHEMA_INVALID</size>" as ER_SN_SCHEMA_INVALID [[../tools/sphinx-needs/features.html#ER_SN_SCHEMA_INVALID]] #Pink
rectangle "<size:12>Fault</size>\n**Schema**\n**``select`` does**\n**not match the**\n**intended needs**\n<size:10>ER_SN_SCHEMA_SELECT_WRONG</size>" as ER_SN_SCHEMA_SELECT_WRONG [[../tools/sphinx-needs/features.html#ER_SN_SCHEMA_SELECT_WRONG]] #Pink
rectangle "<size:12>Fault</size>\n**Schema**\n**violation not**\n**surfaced in**\n**build**\n<size:10>ER_SN_SCHEMA_NOT_REPORTED</size>" as ER_SN_SCHEMA_NOT_REPORTED [[../tools/sphinx-needs/features.html#ER_SN_SCHEMA_NOT_REPORTED]] #Pink
rectangle "<size:12>Fault</size>\n**Schema**\n**violation**\n**wrongly**\n**suppressed via**\n**severity**\n<size:10>ER_SN_SCHEMA_WRONG_SEVERITY</size>" as ER_SN_SCHEMA_WRONG_SEVERITY [[../tools/sphinx-needs/features.html#ER_SN_SCHEMA_WRONG_SEVERITY]] #Pink
rectangle "<size:12>Fault</size>\n**Network**\n**validation**\n**misses indirect**\n**links**\n<size:10>ER_SN_SCHEMA_NETWORK_MISS</size>" as ER_SN_SCHEMA_NETWORK_MISS [[../tools/sphinx-needs/features.html#ER_SN_SCHEMA_NETWORK_MISS]] #Pink
}
rectangle "<size:12>Feature</size>\n**Typed need**\n**fields with**\n**JSON-Schema**\n**validation**\n<size:10>FE_SN_TYPED_FIELDS</size>" as FE_SN_TYPED_FIELDS [[../tools/sphinx-needs/features.html#FE_SN_TYPED_FIELDS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Schema type**\n**mismatch not**\n**detected**\n<size:10>ER_SN_TYPED_FIELD_TYPE_MISS</size>" as ER_SN_TYPED_FIELD_TYPE_MISS [[../tools/sphinx-needs/features.html#ER_SN_TYPED_FIELD_TYPE_MISS]] #Pink
rectangle "<size:12>Fault</size>\n**Enum constraint**\n**not enforced**\n<size:10>ER_SN_TYPED_FIELD_ENUM_MISS</size>" as ER_SN_TYPED_FIELD_ENUM_MISS [[../tools/sphinx-needs/features.html#ER_SN_TYPED_FIELD_ENUM_MISS]] #Pink
rectangle "<size:12>Fault</size>\n**Range**\n**constraint not**\n**enforced**\n<size:10>ER_SN_TYPED_FIELD_RANGE_MISS</size>" as ER_SN_TYPED_FIELD_RANGE_MISS [[../tools/sphinx-needs/features.html#ER_SN_TYPED_FIELD_RANGE_MISS]] #Pink
}
rectangle "<size:12>Feature</size>\n**Typed link**\n**schemas**\n**(cardinality**\n**and targeting)**\n<size:10>FE_SN_TYPED_LINK_SCHEMA</size>" as FE_SN_TYPED_LINK_SCHEMA [[../tools/sphinx-needs/features.html#FE_SN_TYPED_LINK_SCHEMA]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Link**\n**cardinality not**\n**enforced**\n<size:10>ER_SN_TYPED_LINK_CARD_MISS</size>" as ER_SN_TYPED_LINK_CARD_MISS [[../tools/sphinx-needs/features.html#ER_SN_TYPED_LINK_CARD_MISS]] #Pink
rectangle "<size:12>Fault</size>\n**Typed link**\n**accepts wrong**\n**target type**\n<size:10>ER_SN_TYPED_LINK_TARGET_WRONG</size>" as ER_SN_TYPED_LINK_TARGET_WRONG [[../tools/sphinx-needs/features.html#ER_SN_TYPED_LINK_TARGET_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Configuration**\n**via conf.py or**\n**an external**\n**TOML file**\n<size:10>FE_SPHINX_NEEDS_CONFIG_FILES</size>" as FE_SPHINX_NEEDS_CONFIG_FILES [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_CONFIG_FILES]] #Gold
rectangle "<size:12>Feature</size>\n**Customizable**\n**layouts for**\n**need**\n**presentation**\n<size:10>FE_SPHINX_NEEDS_CONFIG_LAYOUTS</size>" as FE_SPHINX_NEEDS_CONFIG_LAYOUTS [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_CONFIG_LAYOUTS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Layout leads to**\n**incorrect**\n**rendering**\n<size:10>ER_SN_LAYOUT_INCORRECT_RENDERING</size>" as ER_SN_LAYOUT_INCORRECT_RENDERING [[../tools/sphinx-needs/features.html#ER_SN_LAYOUT_INCORRECT_RENDERING]] #Pink
rectangle "<size:12>Fault</size>\n**Layout leads to**\n**missing**\n**information**\n<size:10>ER_SN_LAYOUT_MISSING_INFO</size>" as ER_SN_LAYOUT_MISSING_INFO [[../tools/sphinx-needs/features.html#ER_SN_LAYOUT_MISSING_INFO]] #Pink
rectangle "<size:12>Fault</size>\n**Layout leads to**\n**incorrect**\n**information**\n<size:10>ER_SN_LAYOUT_INCORRECT_INFO</size>" as ER_SN_LAYOUT_INCORRECT_INFO [[../tools/sphinx-needs/features.html#ER_SN_LAYOUT_INCORRECT_INFO]] #Pink
}
rectangle "<size:12>Feature</size>\n**JSON builder to**\n**export all need**\n**data**\n<size:10>FE_SPHINX_NEEDS_EXPORT_JSON</size>" as FE_SPHINX_NEEDS_EXPORT_JSON [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_EXPORT_JSON]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Exporting**\n**needs.json**\n**fails silently**\n<size:10>ER_SN_EXPORT_JSON_FAIL_SILENTLY</size>" as ER_SN_EXPORT_JSON_FAIL_SILENTLY [[../tools/sphinx-needs/features.html#ER_SN_EXPORT_JSON_FAIL_SILENTLY]] #Pink
rectangle "<size:12>Fault</size>\n**Exported**\n**needs.json file**\n**is not valid**\n<size:10>ER_SN_EXPORT_JSON_NOT_VALID</size>" as ER_SN_EXPORT_JSON_NOT_VALID [[../tools/sphinx-needs/features.html#ER_SN_EXPORT_JSON_NOT_VALID]] #Pink
rectangle "<size:12>Fault</size>\n**Exported**\n**needs.json file**\n**is corrupted**\n<size:10>ER_SN_EXPORT_JSON_CORRUPTED</size>" as ER_SN_EXPORT_JSON_CORRUPTED [[../tools/sphinx-needs/features.html#ER_SN_EXPORT_JSON_CORRUPTED]] #Pink
}
rectangle "<size:12>Feature</size>\n**Link conditions**\n**exported to**\n**needs.json**\n<size:10>FE_SN_JSON_LINK_CONDITIONS</size>" as FE_SN_JSON_LINK_CONDITIONS [[../tools/sphinx-needs/features.html#FE_SN_JSON_LINK_CONDITIONS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Link conditions**\n**missing in**\n**needs.json**\n<size:10>ER_SN_JSON_LINK_COND_MISSING</size>" as ER_SN_JSON_LINK_COND_MISSING [[../tools/sphinx-needs/features.html#ER_SN_JSON_LINK_COND_MISSING]] #Pink
rectangle "<size:12>Fault</size>\n**Exported link**\n**conditions**\n**differ from**\n**runtime**\n**evaluation**\n<size:10>ER_SN_JSON_LINK_COND_DRIFT</size>" as ER_SN_JSON_LINK_COND_DRIFT [[../tools/sphinx-needs/features.html#ER_SN_JSON_LINK_COND_DRIFT]] #Pink
}
rectangle "<size:12>Feature</size>\n**Permalink**\n**generation to**\n**specific need**\n**objects**\n<size:10>FE_SPHINX_NEEDS_EXPORT_PERMALINKS</size>" as FE_SPHINX_NEEDS_EXPORT_PERMALINKS [[../tools/sphinx-needs/features.html#FE_SPHINX_NEEDS_EXPORT_PERMALINKS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Permalink**\n**generation**\n**fails silently**\n<size:10>ER_SN_PERMALINK_FAIL_SILENTLY</size>" as ER_SN_PERMALINK_FAIL_SILENTLY [[../tools/sphinx-needs/features.html#ER_SN_PERMALINK_FAIL_SILENTLY]] #Pink
rectangle "<size:12>Fault</size>\n**Permalink is**\n**not valid**\n<size:10>ER_SN_PERMALINK_NOT_VALID</size>" as ER_SN_PERMALINK_NOT_VALID [[../tools/sphinx-needs/features.html#ER_SN_PERMALINK_NOT_VALID]] #Pink
rectangle "<size:12>Fault</size>\n**Permalink links**\n**to non-existing**\n**need**\n<size:10>ER_SN_PERMALINK_NON_EXISTING</size>" as ER_SN_PERMALINK_NON_EXISTING [[../tools/sphinx-needs/features.html#ER_SN_PERMALINK_NON_EXISTING]] #Pink
rectangle "<size:12>Fault</size>\n**Permalink links**\n**to wrong need**\n<size:10>ER_SN_PERMALINK_WRONG_NEED</size>" as ER_SN_PERMALINK_WRONG_NEED [[../tools/sphinx-needs/features.html#ER_SN_PERMALINK_WRONG_NEED]] #Pink
}
node "<size:12>Tool</size>\n**Sphinx-Needs**\n<size:10>TOOL_SN</size>" as TOOL_SN [[../tools/sphinx-needs/index.html#TOOL_SN]] #0fbcf9
rectangle "<size:12>Restriction</size>\n**Do not use**\n**dynamic**\n**functions**\n<size:10>CHECK_SN_NO_DYN</size>" as CHECK_SN_NO_DYN [[../tools/sphinx-needs/restrictions.html#CHECK_SN_NO_DYN]] #Orange
rectangle "<size:12>Restriction</size>\n**Warning to**\n**Error**\n<size:10>RE_SN_WARNINGS</size>" as RE_SN_WARNINGS [[../tools/sphinx-needs/restrictions.html#RE_SN_WARNINGS]] #Orange
rectangle "<size:12>Restriction</size>\n**Clean full**\n**build**\n<size:10>RE_SN_CLEAN</size>" as RE_SN_CLEAN [[../tools/sphinx-needs/restrictions.html#RE_SN_CLEAN]] #Orange
rectangle "<size:12>Restriction</size>\n**Use declarative**\n**schema**\n**validation**\n**instead of need**\n**s_constraints**\n<size:10>RE_SN_USE_SCHEMA</size>" as RE_SN_USE_SCHEMA [[../tools/sphinx-needs/restrictions.html#RE_SN_USE_SCHEMA]] #Orange
rectangle "<size:12>Restriction</size>\n**Use severity**\n**"violation" for**\n**safety-relevant**\n**schema rules**\n<size:10>RE_SN_SCHEMA_VIOLATION</size>" as RE_SN_SCHEMA_VIOLATION [[../tools/sphinx-needs/restrictions.html#RE_SN_SCHEMA_VIOLATION]] #Orange
rectangle "<size:12>Restriction</size>\n**Type every**\n**extra field via**\n**needs.fields**\n**schema**\n<size:10>RE_SN_TYPE_FIELDS</size>" as RE_SN_TYPE_FIELDS [[../tools/sphinx-needs/restrictions.html#RE_SN_TYPE_FIELDS]] #Orange
rectangle "<size:12>Restriction</size>\n**Declare**\n**cardinality on**\n**safety-relevant**\n**link types**\n<size:10>RE_SN_LINK_CARDINALITY</size>" as RE_SN_LINK_CARDINALITY [[../tools/sphinx-needs/restrictions.html#RE_SN_LINK_CARDINALITY]] #Orange
rectangle "<size:12>Restriction</size>\n**Export link**\n**conditions in**\n**needs.json**\n<size:10>RE_SN_JSON_LINK_COND</size>" as RE_SN_JSON_LINK_COND [[../tools/sphinx-needs/restrictions.html#RE_SN_JSON_LINK_COND]] #Orange
rectangle "<size:12>Restriction</size>\n**Keep template**\n**files in the**\n**versioned**\n**project scope**\n<size:10>RE_SN_TEMPLATE_IN_SCOPE</size>" as RE_SN_TEMPLATE_IN_SCOPE [[../tools/sphinx-needs/restrictions.html#RE_SN_TEMPLATE_IN_SCOPE]] #Orange
file "<size:12>Artifact</size>\n**JUnit XML test**\n**result file**\n<size:10>ART_STR_JUNIT_XML</size>" as ART_STR_JUNIT_XML [[../tools/sphinx-test-reports/artifacts.html#ART_STR_JUNIT_XML]] #LightBlue
rectangle "<size:12>Feature</size>\n**Import JUnit**\n**XML test**\n**results**\n<size:10>FE_STR_JUNIT_IMPORT</size>" as FE_STR_JUNIT_IMPORT [[../tools/sphinx-test-reports/features.html#FE_STR_JUNIT_IMPORT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**JUnit XML file**\n**cannot be**\n**parsed**\n<size:10>ER_STR_XML_PARSE</size>" as ER_STR_XML_PARSE [[../tools/sphinx-test-reports/features.html#ER_STR_XML_PARSE]] #Pink
rectangle "<size:12>Fault</size>\n**JUnit XML file**\n**contains**\n**unexpected**\n**schema**\n<size:10>ER_STR_XML_SCHEMA</size>" as ER_STR_XML_SCHEMA [[../tools/sphinx-test-reports/features.html#ER_STR_XML_SCHEMA]] #Pink
rectangle "<size:12>Fault</size>\n**Test result**\n**status is**\n**incorrectly**\n**classified**\n<size:10>ER_STR_STATUS_WRONG</size>" as ER_STR_STATUS_WRONG [[../tools/sphinx-test-reports/features.html#ER_STR_STATUS_WRONG]] #Pink
rectangle "<size:12>Fault</size>\n**Test result**\n**status is not**\n**detected**\n<size:10>ER_STR_STATUS_MISSING</size>" as ER_STR_STATUS_MISSING [[../tools/sphinx-test-reports/features.html#ER_STR_STATUS_MISSING]] #Pink
}
rectangle "<size:12>Feature</size>\n**Auto-generate**\n**test suite**\n**needs**\n<size:10>FE_STR_AUTO_SUITES</size>" as FE_STR_AUTO_SUITES [[../tools/sphinx-test-reports/features.html#FE_STR_AUTO_SUITES]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Test suite need**\n**is not created**\n<size:10>ER_STR_SUITE_MISSING</size>" as ER_STR_SUITE_MISSING [[../tools/sphinx-test-reports/features.html#ER_STR_SUITE_MISSING]] #Pink
rectangle "<size:12>Fault</size>\n**Test suite ID**\n**collision**\n<size:10>ER_STR_SUITE_ID_COLLISION</size>" as ER_STR_SUITE_ID_COLLISION [[../tools/sphinx-test-reports/features.html#ER_STR_SUITE_ID_COLLISION]] #Pink
}
rectangle "<size:12>Feature</size>\n**Auto-generate**\n**test case needs**\n<size:10>FE_STR_AUTO_CASES</size>" as FE_STR_AUTO_CASES [[../tools/sphinx-test-reports/features.html#FE_STR_AUTO_CASES]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Test case need**\n**is not created**\n<size:10>ER_STR_CASE_MISSING</size>" as ER_STR_CASE_MISSING [[../tools/sphinx-test-reports/features.html#ER_STR_CASE_MISSING]] #Pink
rectangle "<size:12>Fault</size>\n**Test case ID**\n**collision**\n<size:10>ER_STR_CASE_ID_COLLISION</size>" as ER_STR_CASE_ID_COLLISION [[../tools/sphinx-test-reports/features.html#ER_STR_CASE_ID_COLLISION]] #Pink
rectangle "<size:12>Fault</size>\n**Test case need**\n**contains wrong**\n**data**\n<size:10>ER_STR_CASE_WRONG_DATA</size>" as ER_STR_CASE_WRONG_DATA [[../tools/sphinx-test-reports/features.html#ER_STR_CASE_WRONG_DATA]] #Pink
}
rectangle "<size:12>Feature</size>\n**Map JUnit**\n**properties to**\n**Sphinx-Needs**\n**links**\n<size:10>FE_STR_PROPERTY_LINKS</size>" as FE_STR_PROPERTY_LINKS [[../tools/sphinx-test-reports/features.html#FE_STR_PROPERTY_LINKS]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Property link**\n**is not created**\n<size:10>ER_STR_PROP_LINK_MISSING</size>" as ER_STR_PROP_LINK_MISSING [[../tools/sphinx-test-reports/features.html#ER_STR_PROP_LINK_MISSING]] #Pink
rectangle "<size:12>Fault</size>\n**Property link**\n**points to wrong**\n**target**\n<size:10>ER_STR_PROP_LINK_WRONG</size>" as ER_STR_PROP_LINK_WRONG [[../tools/sphinx-test-reports/features.html#ER_STR_PROP_LINK_WRONG]] #Pink
rectangle "<size:12>Fault</size>\n**Undeclared**\n**property link**\n**type causes**\n**silent failure**\n<size:10>ER_STR_PROP_TYPE_UNDECLARED</size>" as ER_STR_PROP_TYPE_UNDECLARED [[../tools/sphinx-test-reports/features.html#ER_STR_PROP_TYPE_UNDECLARED]] #Pink
}
rectangle "<size:12>Feature</size>\n**Configurable**\n**need types for**\n**imported**\n**results**\n<size:10>FE_STR_CUSTOM_TYPES</size>" as FE_STR_CUSTOM_TYPES [[../tools/sphinx-test-reports/features.html#FE_STR_CUSTOM_TYPES]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Custom type is**\n**not applied to**\n**imported needs**\n<size:10>ER_STR_CUSTOM_TYPE_IGNORED</size>" as ER_STR_CUSTOM_TYPE_IGNORED [[../tools/sphinx-test-reports/features.html#ER_STR_CUSTOM_TYPE_IGNORED]] #Pink
rectangle "<size:12>Fault</size>\n**Custom type ID**\n**prefix**\n**collision with**\n**existing needs**\n<size:10>ER_STR_CUSTOM_TYPE_PREFIX_COLLISION</size>" as ER_STR_CUSTOM_TYPE_PREFIX_COLLISION [[../tools/sphinx-test-reports/features.html#ER_STR_CUSTOM_TYPE_PREFIX_COLLISION]] #Pink
}
rectangle "<size:12>Feature</size>\n**Import test**\n**environment**\n**information**\n<size:10>FE_STR_ENV_IMPORT</size>" as FE_STR_ENV_IMPORT [[../tools/sphinx-test-reports/features.html#FE_STR_ENV_IMPORT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Environment**\n**need is not**\n**created**\n<size:10>ER_STR_ENV_MISSING</size>" as ER_STR_ENV_MISSING [[../tools/sphinx-test-reports/features.html#ER_STR_ENV_MISSING]] #Pink
}
rectangle "<size:12>Feature</size>\n**Filter and**\n**display test**\n**results**\n<size:10>FE_STR_DISPLAY</size>" as FE_STR_DISPLAY [[../tools/sphinx-test-reports/features.html#FE_STR_DISPLAY]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Test results**\n**table is empty**\n**despite**\n**imported data**\n<size:10>ER_STR_DISPLAY_EMPTY</size>" as ER_STR_DISPLAY_EMPTY [[../tools/sphinx-test-reports/features.html#ER_STR_DISPLAY_EMPTY]] #Pink
}
node "<size:12>Tool</size>\n**Sphinx-Test-**\n**Reports**\n<size:10>TOOL_STR</size>" as TOOL_STR [[../tools/sphinx-test-reports/index.html#TOOL_STR]] #0fbcf9
rectangle "<size:12>Restriction</size>\n**Declare all**\n**property link**\n**types in ``tr_p**\n**roperty_link_ty**\n**pes``**\n<size:10>RE_STR_PROP_LINK_TYPES</size>" as RE_STR_PROP_LINK_TYPES [[../tools/sphinx-test-reports/restrictions.html#RE_STR_PROP_LINK_TYPES]] #Orange
rectangle "<size:12>Restriction</size>\n**Set ``tr_case_i**\n**d_length`` and **\n**``tr_suite_id_l**\n**ength`` to**\n**avoid**\n**collisions**\n<size:10>RE_STR_ID_LENGTH</size>" as RE_STR_ID_LENGTH [[../tools/sphinx-test-reports/restrictions.html#RE_STR_ID_LENGTH]] #Orange
rectangle "<size:12>Restriction</size>\n**Use a dedicated**\n**custom type for**\n**imported test**\n**results**\n<size:10>RE_STR_CUSTOM_TYPE</size>" as RE_STR_CUSTOM_TYPE [[../tools/sphinx-test-reports/restrictions.html#RE_STR_CUSTOM_TYPE]] #Orange
file "<size:12>Artifact</size>\n**rst file**\n<size:10>ART_SPHINX_RST</size>" as ART_SPHINX_RST [[../tools/sphinx/artifacts.html#ART_SPHINX_RST]] #LightBlue
rectangle "<size:12>Feature</size>\n**Read-in**\n**documents with**\n**Sphinx**\n<size:10>FE_SPHINX_READ</size>" as FE_SPHINX_READ [[../tools/sphinx/features.html#FE_SPHINX_READ]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Needed**\n**folders/files**\n**are ignored**\n<size:10>ER_FILES_IGNORED</size>" as ER_FILES_IGNORED [[../tools/sphinx/features.html#ER_FILES_IGNORED]] #Pink
rectangle "<size:12>Fault</size>\n**Needed**\n**files/folders**\n**have not**\n**supported**\n**encoding**\n<size:10>ER_SPH_WRONG_ENCODING</size>" as ER_SPH_WRONG_ENCODING [[../tools/sphinx/features.html#ER_SPH_WRONG_ENCODING]] #Pink
rectangle "<size:12>Fault</size>\n**Access to**\n**files/folders**\n**not given**\n<size:10>ER_SPH_WRONG_ACCESS</size>" as ER_SPH_WRONG_ACCESS [[../tools/sphinx/features.html#ER_SPH_WRONG_ACCESS]] #Pink
rectangle "<size:12>Fault</size>\n**Incremental**\n**build leaves**\n**stale or**\n**incomplete**\n**output**\n<size:10>ER_SPH_STALE_BUILD</size>" as ER_SPH_STALE_BUILD [[../tools/sphinx/features.html#ER_SPH_STALE_BUILD]] #Pink
}
rectangle "<size:12>Feature</size>\n**Italicized**\n**(Emphasis) Text**\n<size:10>FE_SPHINX_INLINE_EMPHASIS</size>" as FE_SPHINX_INLINE_EMPHASIS [[../tools/sphinx/features.html#FE_SPHINX_INLINE_EMPHASIS]] #Gold
rectangle "<size:12>Feature</size>\n**Bold (Strong)**\n**Text**\n<size:10>FE_SPHINX_INLINE_STRONG</size>" as FE_SPHINX_INLINE_STRONG [[../tools/sphinx/features.html#FE_SPHINX_INLINE_STRONG]] #Gold
rectangle "<size:12>Feature</size>\n**Inline Literal**\n**(Code) Text**\n<size:10>FE_SPHINX_INLINE_LITERAL</size>" as FE_SPHINX_INLINE_LITERAL [[../tools/sphinx/features.html#FE_SPHINX_INLINE_LITERAL]] #Gold
rectangle "<size:12>Feature</size>\n**Named Hyperlink**\n**Reference**\n<size:10>FE_SPHINX_INLINE_NAMED_HYPERLINK</size>" as FE_SPHINX_INLINE_NAMED_HYPERLINK [[../tools/sphinx/features.html#FE_SPHINX_INLINE_NAMED_HYPERLINK]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Named hyperlink**\n**resolves to**\n**wrong or broken**\n**target**\n<size:10>ER_SPH_HYPERLINK_BROKEN</size>" as ER_SPH_HYPERLINK_BROKEN [[../tools/sphinx/features.html#ER_SPH_HYPERLINK_BROKEN]] #Pink
}
rectangle "<size:12>Feature</size>\n**Inline Internal**\n**Target**\n<size:10>FE_SPHINX_INLINE_INTERNAL_TARGET</size>" as FE_SPHINX_INLINE_INTERNAL_TARGET [[../tools/sphinx/features.html#FE_SPHINX_INLINE_INTERNAL_TARGET]] #Gold
rectangle "<size:12>Feature</size>\n**Escaped Markup**\n**Characters**\n<size:10>FE_SPHINX_INLINE_ESCAPE</size>" as FE_SPHINX_INLINE_ESCAPE [[../tools/sphinx/features.html#FE_SPHINX_INLINE_ESCAPE]] #Gold
rectangle "<size:12>Feature</size>\n**Subscript Role**\n<size:10>FE_SPHINX_ROLE_SUBSCRIPT</size>" as FE_SPHINX_ROLE_SUBSCRIPT [[../tools/sphinx/features.html#FE_SPHINX_ROLE_SUBSCRIPT]] #Gold
rectangle "<size:12>Feature</size>\n**Superscript**\n**Role**\n<size:10>FE_SPHINX_ROLE_SUPERSCRIPT</size>" as FE_SPHINX_ROLE_SUPERSCRIPT [[../tools/sphinx/features.html#FE_SPHINX_ROLE_SUPERSCRIPT]] #Gold
rectangle "<size:12>Feature</size>\n**Strong Role**\n<size:10>FE_SPHINX_ROLE_STRONG</size>" as FE_SPHINX_ROLE_STRONG [[../tools/sphinx/features.html#FE_SPHINX_ROLE_STRONG]] #Gold
rectangle "<size:12>Feature</size>\n**Emphasis Role**\n<size:10>FE_SPHINX_ROLE_EMPHASIS</size>" as FE_SPHINX_ROLE_EMPHASIS [[../tools/sphinx/features.html#FE_SPHINX_ROLE_EMPHASIS]] #Gold
rectangle "<size:12>Feature</size>\n**Literal Role**\n<size:10>FE_SPHINX_ROLE_LITERAL</size>" as FE_SPHINX_ROLE_LITERAL [[../tools/sphinx/features.html#FE_SPHINX_ROLE_LITERAL]] #Gold
rectangle "<size:12>Feature</size>\n**Code Role**\n<size:10>FE_SPHINX_ROLE_CODE</size>" as FE_SPHINX_ROLE_CODE [[../tools/sphinx/features.html#FE_SPHINX_ROLE_CODE]] #Gold
rectangle "<size:12>Feature</size>\n**Inline Math**\n**Role**\n<size:10>FE_SPHINX_ROLE_MATH</size>" as FE_SPHINX_ROLE_MATH [[../tools/sphinx/features.html#FE_SPHINX_ROLE_MATH]] #Gold
rectangle "<size:12>Feature</size>\n**Section Titles**\n**with Underlines**\n<size:10>FE_SPHINX_STRUCTURE_SECTION_TITLES</size>" as FE_SPHINX_STRUCTURE_SECTION_TITLES [[../tools/sphinx/features.html#FE_SPHINX_STRUCTURE_SECTION_TITLES]] #Gold
rectangle "<size:12>Feature</size>\n**Document Title**\n**and Subtitle**\n<size:10>FE_SPHINX_STRUCTURE_DOC_TITLE</size>" as FE_SPHINX_STRUCTURE_DOC_TITLE [[../tools/sphinx/features.html#FE_SPHINX_STRUCTURE_DOC_TITLE]] #Gold
rectangle "<size:12>Feature</size>\n**Transitions**\n**(Horizontal**\n**Lines)**\n<size:10>FE_SPHINX_STRUCTURE_TRANSITIONS</size>" as FE_SPHINX_STRUCTURE_TRANSITIONS [[../tools/sphinx/features.html#FE_SPHINX_STRUCTURE_TRANSITIONS]] #Gold
rectangle "<size:12>Feature</size>\n**Table of**\n**Contents Tree**\n**Directive**\n**(toctree)**\n<size:10>FE_SPHINX_DIRECTIVE_TOCTREE</size>" as FE_SPHINX_DIRECTIVE_TOCTREE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_TOCTREE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Document is**\n**missing from**\n**the toctree**\n<size:10>ER_SPH_TOCTREE_MISSING</size>" as ER_SPH_TOCTREE_MISSING [[../tools/sphinx/features.html#ER_SPH_TOCTREE_MISSING]] #Pink
}
rectangle "<size:12>Feature</size>\n**Rubric**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_RUBRIC</size>" as FE_SPHINX_DIRECTIVE_RUBRIC [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_RUBRIC]] #Gold
rectangle "<size:12>Feature</size>\n**Bulleted Lists**\n<size:10>FE_SPHINX_LISTS_BULLETED</size>" as FE_SPHINX_LISTS_BULLETED [[../tools/sphinx/features.html#FE_SPHINX_LISTS_BULLETED]] #Gold
rectangle "<size:12>Feature</size>\n**Numbered**\n**(Enumerated)**\n**Lists**\n<size:10>FE_SPHINX_LISTS_ENUMERATED</size>" as FE_SPHINX_LISTS_ENUMERATED [[../tools/sphinx/features.html#FE_SPHINX_LISTS_ENUMERATED]] #Gold
rectangle "<size:12>Feature</size>\n**Auto-Numbered**\n**Lists**\n<size:10>FE_SPHINX_LISTS_AUTO_NUMBERED</size>" as FE_SPHINX_LISTS_AUTO_NUMBERED [[../tools/sphinx/features.html#FE_SPHINX_LISTS_AUTO_NUMBERED]] #Gold
rectangle "<size:12>Feature</size>\n**Nested Lists**\n<size:10>FE_SPHINX_LISTS_NESTED</size>" as FE_SPHINX_LISTS_NESTED [[../tools/sphinx/features.html#FE_SPHINX_LISTS_NESTED]] #Gold
rectangle "<size:12>Feature</size>\n**Definition**\n**Lists**\n<size:10>FE_SPHINX_LISTS_DEFINITION</size>" as FE_SPHINX_LISTS_DEFINITION [[../tools/sphinx/features.html#FE_SPHINX_LISTS_DEFINITION]] #Gold
rectangle "<size:12>Feature</size>\n**Option Lists**\n<size:10>FE_SPHINX_LISTS_OPTION</size>" as FE_SPHINX_LISTS_OPTION [[../tools/sphinx/features.html#FE_SPHINX_LISTS_OPTION]] #Gold
rectangle "<size:12>Feature</size>\n**Block Quotes**\n<size:10>FE_SPHINX_CONTENT_BLOCKQUOTES</size>" as FE_SPHINX_CONTENT_BLOCKQUOTES [[../tools/sphinx/features.html#FE_SPHINX_CONTENT_BLOCKQUOTES]] #Gold
rectangle "<size:12>Feature</size>\n**Line Blocks**\n<size:10>FE_SPHINX_CONTENT_LINE_BLOCKS</size>" as FE_SPHINX_CONTENT_LINE_BLOCKS [[../tools/sphinx/features.html#FE_SPHINX_CONTENT_LINE_BLOCKS]] #Gold
rectangle "<size:12>Feature</size>\n**Image Directive**\n<size:10>FE_SPHINX_DIRECTIVE_IMAGE</size>" as FE_SPHINX_DIRECTIVE_IMAGE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_IMAGE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Image is**\n**missing or not**\n**copied to the**\n**output**\n<size:10>ER_SPH_IMAGE_MISSING</size>" as ER_SPH_IMAGE_MISSING [[../tools/sphinx/features.html#ER_SPH_IMAGE_MISSING]] #Pink
}
rectangle "<size:12>Feature</size>\n**Figure**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_FIGURE</size>" as FE_SPHINX_DIRECTIVE_FIGURE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_FIGURE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Figure caption**\n**or image is**\n**wrong or**\n**missing**\n<size:10>ER_SPH_FIGURE_WRONG</size>" as ER_SPH_FIGURE_WRONG [[../tools/sphinx/features.html#ER_SPH_FIGURE_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Table Directive**\n**with Title**\n<size:10>FE_SPHINX_DIRECTIVE_TABLE</size>" as FE_SPHINX_DIRECTIVE_TABLE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_TABLE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Table title or**\n**rows are**\n**rendered**\n**incorrectly**\n<size:10>ER_SPH_TABLE_WRONG</size>" as ER_SPH_TABLE_WRONG [[../tools/sphinx/features.html#ER_SPH_TABLE_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Simple Tables**\n<size:10>FE_SPHINX_TABLES_SIMPLE</size>" as FE_SPHINX_TABLES_SIMPLE [[../tools/sphinx/features.html#FE_SPHINX_TABLES_SIMPLE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Simple table**\n**cells are**\n**misparsed**\n<size:10>ER_SPH_TABLE_SIMPLE_WRONG</size>" as ER_SPH_TABLE_SIMPLE_WRONG [[../tools/sphinx/features.html#ER_SPH_TABLE_SIMPLE_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Grid Tables**\n<size:10>FE_SPHINX_TABLES_GRID</size>" as FE_SPHINX_TABLES_GRID [[../tools/sphinx/features.html#FE_SPHINX_TABLES_GRID]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Grid table**\n**spans are**\n**rendered**\n**incorrectly**\n<size:10>ER_SPH_TABLE_GRID_WRONG</size>" as ER_SPH_TABLE_GRID_WRONG [[../tools/sphinx/features.html#ER_SPH_TABLE_GRID_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**CSV Table**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_CSV_TABLE</size>" as FE_SPHINX_DIRECTIVE_CSV_TABLE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_CSV_TABLE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**CSV table**\n**content is**\n**imported**\n**incorrectly**\n<size:10>ER_SPH_CSV_WRONG</size>" as ER_SPH_CSV_WRONG [[../tools/sphinx/features.html#ER_SPH_CSV_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**List Table**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_LIST_TABLE</size>" as FE_SPHINX_DIRECTIVE_LIST_TABLE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_LIST_TABLE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**List table rows**\n**or columns are**\n**rendered**\n**incorrectly**\n<size:10>ER_SPH_LISTTABLE_WRONG</size>" as ER_SPH_LISTTABLE_WRONG [[../tools/sphinx/features.html#ER_SPH_LISTTABLE_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Code Block**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_CODE_BLOCK</size>" as FE_SPHINX_DIRECTIVE_CODE_BLOCK [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_CODE_BLOCK]] #Gold
rectangle "<size:12>Feature</size>\n**Literal Include**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_LITERALINCLUDE</size>" as FE_SPHINX_DIRECTIVE_LITERALINCLUDE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_LITERALINCLUDE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Wrong content**\n**or line range**\n**is included**\n<size:10>ER_SPH_LITINCLUDE_WRONG</size>" as ER_SPH_LITINCLUDE_WRONG [[../tools/sphinx/features.html#ER_SPH_LITINCLUDE_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Math Directive**\n<size:10>FE_SPHINX_DIRECTIVE_MATH</size>" as FE_SPHINX_DIRECTIVE_MATH [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_MATH]] #Gold
rectangle "<size:12>Feature</size>\n**Contents**\n**Directive**\n**(Local ToC)**\n<size:10>FE_SPHINX_DIRECTIVE_CONTENTS</size>" as FE_SPHINX_DIRECTIVE_CONTENTS [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_CONTENTS]] #Gold
rectangle "<size:12>Feature</size>\n**Include**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_INCLUDE</size>" as FE_SPHINX_DIRECTIVE_INCLUDE [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_INCLUDE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Wrong or**\n**missing file is**\n**included**\n**silently**\n<size:10>ER_SPH_INCLUDE_WRONG</size>" as ER_SPH_INCLUDE_WRONG [[../tools/sphinx/features.html#ER_SPH_INCLUDE_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Raw Content**\n**Directive**\n<size:10>FE_SPHINX_DIRECTIVE_RAW</size>" as FE_SPHINX_DIRECTIVE_RAW [[../tools/sphinx/features.html#FE_SPHINX_DIRECTIVE_RAW]] #Gold
rectangle "<size:12>Feature</size>\n**Note Admonition**\n<size:10>FE_SPHINX_ADMONITION_NOTE</size>" as FE_SPHINX_ADMONITION_NOTE [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_NOTE]] #Gold
rectangle "<size:12>Feature</size>\n**Warning**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_WARNING</size>" as FE_SPHINX_ADMONITION_WARNING [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_WARNING]] #Gold
rectangle "<size:12>Feature</size>\n**Hint Admonition**\n<size:10>FE_SPHINX_ADMONITION_HINT</size>" as FE_SPHINX_ADMONITION_HINT [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_HINT]] #Gold
rectangle "<size:12>Feature</size>\n**Tip Admonition**\n<size:10>FE_SPHINX_ADMONITION_TIP</size>" as FE_SPHINX_ADMONITION_TIP [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_TIP]] #Gold
rectangle "<size:12>Feature</size>\n**Important**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_IMPORTANT</size>" as FE_SPHINX_ADMONITION_IMPORTANT [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_IMPORTANT]] #Gold
rectangle "<size:12>Feature</size>\n**Attention**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_ATTENTION</size>" as FE_SPHINX_ADMONITION_ATTENTION [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_ATTENTION]] #Gold
rectangle "<size:12>Feature</size>\n**Caution**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_CAUTION</size>" as FE_SPHINX_ADMONITION_CAUTION [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_CAUTION]] #Gold
rectangle "<size:12>Feature</size>\n**Error**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_ERROR</size>" as FE_SPHINX_ADMONITION_ERROR [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_ERROR]] #Gold
rectangle "<size:12>Feature</size>\n**Danger**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_DANGER</size>" as FE_SPHINX_ADMONITION_DANGER [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_DANGER]] #Gold
rectangle "<size:12>Feature</size>\n**Generic**\n**Admonition**\n<size:10>FE_SPHINX_ADMONITION_GENERIC</size>" as FE_SPHINX_ADMONITION_GENERIC [[../tools/sphinx/features.html#FE_SPHINX_ADMONITION_GENERIC]] #Gold
rectangle "<size:12>Feature</size>\n**External**\n**Hyperlinks**\n<size:10>FE_SPHINX_LINK_EXTERNAL</size>" as FE_SPHINX_LINK_EXTERNAL [[../tools/sphinx/features.html#FE_SPHINX_LINK_EXTERNAL]] #Gold
rectangle "<size:12>Feature</size>\n**Implicit**\n**Hyperlinks from**\n**URLs**\n<size:10>FE_SPHINX_LINK_IMPLICIT</size>" as FE_SPHINX_LINK_IMPLICIT [[../tools/sphinx/features.html#FE_SPHINX_LINK_IMPLICIT]] #Gold
rectangle "<size:12>Feature</size>\n**Internal Cross-**\n**References to**\n**Labels**\n<size:10>FE_SPHINX_LINK_INTERNAL_LABELS</size>" as FE_SPHINX_LINK_INTERNAL_LABELS [[../tools/sphinx/features.html#FE_SPHINX_LINK_INTERNAL_LABELS]] #Gold
rectangle "<size:12>Feature</size>\n**Explicit Target**\n**Creation**\n<size:10>FE_SPHINX_LINK_EXPLICIT_TARGET</size>" as FE_SPHINX_LINK_EXPLICIT_TARGET [[../tools/sphinx/features.html#FE_SPHINX_LINK_EXPLICIT_TARGET]] #Gold
rectangle "<size:12>Feature</size>\n**Reference Role**\n<size:10>FE_SPHINX_ROLE_REF</size>" as FE_SPHINX_ROLE_REF [[../tools/sphinx/features.html#FE_SPHINX_ROLE_REF]] #Gold
rectangle "<size:12>Feature</size>\n**Document Role**\n<size:10>FE_SPHINX_ROLE_DOC</size>" as FE_SPHINX_ROLE_DOC [[../tools/sphinx/features.html#FE_SPHINX_ROLE_DOC]] #Gold
rectangle "<size:12>Feature</size>\n**Numbered**\n**Reference Role**\n<size:10>FE_SPHINX_ROLE_NUMREF</size>" as FE_SPHINX_ROLE_NUMREF [[../tools/sphinx/features.html#FE_SPHINX_ROLE_NUMREF]] #Gold
rectangle "<size:12>Feature</size>\n**Footnotes**\n<size:10>FE_SPHINX_LINK_FOOTNOTES</size>" as FE_SPHINX_LINK_FOOTNOTES [[../tools/sphinx/features.html#FE_SPHINX_LINK_FOOTNOTES]] #Gold
rectangle "<size:12>Feature</size>\n**Citations**\n<size:10>FE_SPHINX_LINK_CITATIONS</size>" as FE_SPHINX_LINK_CITATIONS [[../tools/sphinx/features.html#FE_SPHINX_LINK_CITATIONS]] #Gold
rectangle "<size:12>Feature</size>\n**HTML Output**\n<size:10>FE_SPHINX_OUTPUT_HTML</size>" as FE_SPHINX_OUTPUT_HTML [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_HTML]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**HTML output is**\n**incomplete or**\n**incorrect**\n<size:10>ER_SPH_HTML_WRONG</size>" as ER_SPH_HTML_WRONG [[../tools/sphinx/features.html#ER_SPH_HTML_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Single-File**\n**HTML Output**\n<size:10>FE_SPHINX_OUTPUT_SINGLE_HTML</size>" as FE_SPHINX_OUTPUT_SINGLE_HTML [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_SINGLE_HTML]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Single-file**\n**HTML output is**\n**incomplete or**\n**incorrect**\n<size:10>ER_SPH_SINGLEHTML_WRONG</size>" as ER_SPH_SINGLEHTML_WRONG [[../tools/sphinx/features.html#ER_SPH_SINGLEHTML_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Directory HTML**\n**Output**\n<size:10>FE_SPHINX_OUTPUT_DIR_HTML</size>" as FE_SPHINX_OUTPUT_DIR_HTML [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_DIR_HTML]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Directory HTML**\n**output has a**\n**wrong structure**\n<size:10>ER_SPH_DIRHTML_WRONG</size>" as ER_SPH_DIRHTML_WRONG [[../tools/sphinx/features.html#ER_SPH_DIRHTML_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**LaTeX Output**\n<size:10>FE_SPHINX_OUTPUT_LATEX</size>" as FE_SPHINX_OUTPUT_LATEX [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_LATEX]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**LaTeX output is**\n**incomplete or**\n**incorrect**\n<size:10>ER_SPH_LATEX_WRONG</size>" as ER_SPH_LATEX_WRONG [[../tools/sphinx/features.html#ER_SPH_LATEX_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**ePub 3 Output**\n<size:10>FE_SPHINX_OUTPUT_EPUB</size>" as FE_SPHINX_OUTPUT_EPUB [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_EPUB]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**ePub output is**\n**incomplete or**\n**invalid**\n<size:10>ER_SPH_EPUB_WRONG</size>" as ER_SPH_EPUB_WRONG [[../tools/sphinx/features.html#ER_SPH_EPUB_WRONG]] #Pink
}
rectangle "<size:12>Feature</size>\n**Man Page Output**\n<size:10>FE_SPHINX_OUTPUT_MANPAGE</size>" as FE_SPHINX_OUTPUT_MANPAGE [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_MANPAGE]] #Gold
rectangle "<size:12>Feature</size>\n**Plain Text**\n**Output**\n<size:10>FE_SPHINX_OUTPUT_TEXT</size>" as FE_SPHINX_OUTPUT_TEXT [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_TEXT]] #Gold
rectangle "<size:12>Feature</size>\n**JSON Output**\n<size:10>FE_SPHINX_OUTPUT_JSON</size>" as FE_SPHINX_OUTPUT_JSON [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_JSON]] #Gold
rectangle "<size:12>Feature</size>\n**Gettext Message**\n**Catalog Output**\n<size:10>FE_SPHINX_OUTPUT_GETTEXT</size>" as FE_SPHINX_OUTPUT_GETTEXT [[../tools/sphinx/features.html#FE_SPHINX_OUTPUT_GETTEXT]] #Gold
rectangle "<size:12>Feature</size>\n**Built-in HTML**\n**Search**\n<size:10>FE_SPHINX_BUILD_HTML_SEARCH</size>" as FE_SPHINX_BUILD_HTML_SEARCH [[../tools/sphinx/features.html#FE_SPHINX_BUILD_HTML_SEARCH]] #Gold
rectangle "<size:12>Feature</size>\n**HTML Theming**\n**Support**\n<size:10>FE_SPHINX_BUILD_THEMING</size>" as FE_SPHINX_BUILD_THEMING [[../tools/sphinx/features.html#FE_SPHINX_BUILD_THEMING]] #Gold
rectangle "<size:12>Feature</size>\n**Static File**\n**Support**\n<size:10>FE_SPHINX_BUILD_STATIC_FILES</size>" as FE_SPHINX_BUILD_STATIC_FILES [[../tools/sphinx/features.html#FE_SPHINX_BUILD_STATIC_FILES]] #Gold
node "<size:12>Tool</size>\n**Sphinx**\n<size:10>TOOL_SPHINX</size>" as TOOL_SPHINX [[../tools/sphinx/index.html#TOOL_SPHINX]] #0fbcf9
rectangle "<size:12>Restriction</size>\n**Warning to**\n**Error**\n<size:10>RE_SPHINX_WARNINGS</size>" as RE_SPHINX_WARNINGS [[../tools/sphinx/restrictions.html#RE_SPHINX_WARNINGS]] #Orange
rectangle "<size:12>Restriction</size>\n**Clean full**\n**build**\n<size:10>RE_SPHINX_CLEAN</size>" as RE_SPHINX_CLEAN [[../tools/sphinx/restrictions.html#RE_SPHINX_CLEAN]] #Orange
file "<size:12>Artifact</size>\n**ubc needs.json**\n**file**\n<size:10>ART_UBC_NEEDS_JSON</size>" as ART_UBC_NEEDS_JSON [[../tools/ubc/artifacts.html#ART_UBC_NEEDS_JSON]] #LightBlue
rectangle "<size:12>Feature</size>\n**Check rst files**\n**for linting**\n**problems**\n<size:10>FE_UBC_LINTING</size>" as FE_UBC_LINTING [[../tools/ubc/features.html#FE_UBC_LINTING]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Not covered**\n**format**\n<size:10>ER_UBC_LINTING_NOT_COVERED</size>" as ER_UBC_LINTING_NOT_COVERED [[../tools/ubc/features.html#ER_UBC_LINTING_NOT_COVERED]] #Pink
}
rectangle "<size:12>Feature</size>\n**Format rst**\n**files**\n<size:10>FE_UBC_FORMAT</size>" as FE_UBC_FORMAT [[../tools/ubc/features.html#FE_UBC_FORMAT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Format**\n**introduces**\n**errors**\n<size:10>ER_UBC_FORMAT_ERRORS</size>" as ER_UBC_FORMAT_ERRORS [[../tools/ubc/features.html#ER_UBC_FORMAT_ERRORS]] #Pink
}
rectangle "<size:12>Feature</size>\n**Clean internal**\n**caches**\n<size:10>FE_UBC_CACHE</size>" as FE_UBC_CACHE [[../tools/ubc/features.html#FE_UBC_CACHE]] #Gold
rectangle "<size:12>Feature</size>\n**Build**\n**needs.json**\n<size:10>FE_UBC_BUILD_JSON</size>" as FE_UBC_BUILD_JSON [[../tools/ubc/features.html#FE_UBC_BUILD_JSON]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Incomplete data**\n<size:10>ER_UBC_JSON_INCOMPLETE</size>" as ER_UBC_JSON_INCOMPLETE [[../tools/ubc/features.html#ER_UBC_JSON_INCOMPLETE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Validate**\n**needs.json**\n<size:10>FE_UBC_VALIDATE_JSON</size>" as FE_UBC_VALIDATE_JSON [[../tools/ubc/features.html#FE_UBC_VALIDATE_JSON]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Unknown file**\n**format**\n<size:10>ER_UBC_VAL_FORMAT</size>" as ER_UBC_VAL_FORMAT [[../tools/ubc/features.html#ER_UBC_VAL_FORMAT]] #Pink
rectangle "<size:12>Fault</size>\n**Incomplete**\n**Validation**\n<size:10>ER_UBC_VAL_INCOMPLETE</size>" as ER_UBC_VAL_INCOMPLETE [[../tools/ubc/features.html#ER_UBC_VAL_INCOMPLETE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Validate**\n**ontology schema**\n**(``ubc schema**\n**validate``)**\n<size:10>FE_UBC_SCHEMA_VALIDATE</size>" as FE_UBC_SCHEMA_VALIDATE [[../tools/ubc/features.html#FE_UBC_SCHEMA_VALIDATE]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Schema rules**\n**not loaded**\n<size:10>ER_UBC_SCHEMA_NO_RULES</size>" as ER_UBC_SCHEMA_NO_RULES [[../tools/ubc/features.html#ER_UBC_SCHEMA_NO_RULES]] #Pink
rectangle "<size:12>Fault</size>\n**Schema rule set**\n**diverges from**\n**Sphinx-Needs**\n<size:10>ER_UBC_SCHEMA_DIVERGE</size>" as ER_UBC_SCHEMA_DIVERGE [[../tools/ubc/features.html#ER_UBC_SCHEMA_DIVERGE]] #Pink
rectangle "<size:12>Fault</size>\n**Safety**\n**violation**\n**reported only**\n**as warning**\n<size:10>ER_UBC_SCHEMA_EXIT_ZERO</size>" as ER_UBC_SCHEMA_EXIT_ZERO [[../tools/ubc/features.html#ER_UBC_SCHEMA_EXIT_ZERO]] #Pink
}
rectangle "<size:12>Feature</size>\n**Impact analysis**\n**on git changes**\n**(``ubc diff**\n**git``)**\n<size:10>FE_UBC_DIFF_GIT</size>" as FE_UBC_DIFF_GIT [[../tools/ubc/features.html#FE_UBC_DIFF_GIT]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Impact depth**\n**truncates the**\n**graph**\n<size:10>ER_UBC_DIFF_DEPTH_CUT</size>" as ER_UBC_DIFF_DEPTH_CUT [[../tools/ubc/features.html#ER_UBC_DIFF_DEPTH_CUT]] #Pink
rectangle "<size:12>Fault</size>\n**Wrong direction**\n**omits incoming**\n**impact**\n<size:10>ER_UBC_DIFF_DIR_WRONG</size>" as ER_UBC_DIFF_DIR_WRONG [[../tools/ubc/features.html#ER_UBC_DIFF_DIR_WRONG]] #Pink
rectangle "<size:12>Fault</size>\n**Uncommitted**\n**local edits not**\n**covered**\n<size:10>ER_UBC_DIFF_DIRTY</size>" as ER_UBC_DIFF_DIRTY [[../tools/ubc/features.html#ER_UBC_DIFF_DIRTY]] #Pink
}
rectangle "<size:12>Feature</size>\n**Generate AI-**\n**agent skill for**\n**the project**\n**(``ubc agent-**\n**skill``)**\n<size:10>FE_UBC_AGENT_SKILL</size>" as FE_UBC_AGENT_SKILL [[../tools/ubc/features.html#FE_UBC_AGENT_SKILL]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Skill out of**\n**sync with**\n**qualified**\n**configuration**\n<size:10>ER_UBC_AGENT_SKILL_STALE</size>" as ER_UBC_AGENT_SKILL_STALE [[../tools/ubc/features.html#ER_UBC_AGENT_SKILL_STALE]] #Pink
}
rectangle "<size:12>Feature</size>\n**Cross-check**\n**needs.json**\n**against an**\n**independent**\n**index (``ubc**\n**diff json``)**\n<size:10>FE_UBC_JSON_CROSSCHECK</size>" as FE_UBC_JSON_CROSSCHECK [[../tools/ubc/features.html#FE_UBC_JSON_CROSSCHECK]] #Gold{
'child needs:
rectangle "<size:12>Fault</size>\n**Divergence not**\n**detected (false**\n**negative)**\n<size:10>ER_UBC_CROSSCHECK_FALSE_NEG</size>" as ER_UBC_CROSSCHECK_FALSE_NEG [[../tools/ubc/features.html#ER_UBC_CROSSCHECK_FALSE_NEG]] #Pink
}
node "<size:12>Tool</size>\n**ubc**\n<size:10>TOOL_UBC</size>" as TOOL_UBC [[../tools/ubc/index.html#TOOL_UBC]] #0fbcf9
rectangle "<size:12>Restriction</size>\n**Do not use**\n**dynamic**\n**functions**\n<size:10>CHECK_UBC_NO_DYN</size>" as CHECK_UBC_NO_DYN [[../tools/ubc/restrictions.html#CHECK_UBC_NO_DYN]] #Orange
rectangle "<size:12>Restriction</size>\n**Do not use**\n**list2needs**\n<size:10>CHECK_UBC_NO_LIST2NEEDS</size>" as CHECK_UBC_NO_LIST2NEEDS [[../tools/ubc/restrictions.html#CHECK_UBC_NO_LIST2NEEDS]] #Orange
rectangle "<size:12>Restriction</size>\n**Do not**\n**use/reference**\n**rst files**\n**outside the**\n**ubproject**\n**workspace/scope**\n<size:10>CHECK_UBC_RST_WORKSPACE</size>" as CHECK_UBC_RST_WORKSPACE [[../tools/ubc/restrictions.html#CHECK_UBC_RST_WORKSPACE]] #Orange
rectangle "<size:12>Restriction</size>\n**Run needs.json**\n**cross-check in**\n**CI and fail on**\n**any diff**\n<size:10>RE_UBC_CROSSCHECK_CI</size>" as RE_UBC_CROSSCHECK_CI [[../tools/ubc/restrictions.html#RE_UBC_CROSSCHECK_CI]] #Orange
rectangle "<size:12>Restriction</size>\n**Run ``ubc**\n**format`` in**\n**check mode only**\n**in CI**\n<size:10>RE_UBC_FORMAT_CHECK_ONLY</size>" as RE_UBC_FORMAT_CHECK_ONLY [[../tools/ubc/restrictions.html#RE_UBC_FORMAT_CHECK_ONLY]] #Orange
rectangle "<size:12>Restriction</size>\n**Pin ``ubc`` and**\n**``sphinx-**\n**needs`` to**\n**compatible**\n**releases**\n<size:10>RE_UBC_VERSION_PIN</size>" as RE_UBC_VERSION_PIN [[../tools/ubc/restrictions.html#RE_UBC_VERSION_PIN]] #Orange
rectangle "<size:12>Restriction</size>\n**Schema**\n**violations must**\n**cause a non-**\n**zero exit code**\n<size:10>RE_UBC_SCHEMA_SEVERITY_ERROR</size>" as RE_UBC_SCHEMA_SEVERITY_ERROR [[../tools/ubc/restrictions.html#RE_UBC_SCHEMA_SEVERITY_ERROR]] #Orange
rectangle "<size:12>Restriction</size>\n**Run ``ubc diff**\n**git`` with**\n**sufficient**\n**impact depth**\n<size:10>RE_UBC_DIFF_MIN_DEPTH</size>" as RE_UBC_DIFF_MIN_DEPTH [[../tools/ubc/restrictions.html#RE_UBC_DIFF_MIN_DEPTH]] #Orange
rectangle "<size:12>Restriction</size>\n**Run ``ubc diff**\n**git`` with**\n**``--impact-**\n**direction**\n**both``**\n<size:10>RE_UBC_DIFF_DIRECTION_BOTH</size>" as RE_UBC_DIFF_DIRECTION_BOTH [[../tools/ubc/restrictions.html#RE_UBC_DIFF_DIRECTION_BOTH]] #Orange
rectangle "<size:12>Use Case</size>\n**Document**\n**software**\n**requirements**\n<size:10>UC_SW_REQ</size>" as UC_SW_REQ [[../use_cases/index.html#UC_SW_REQ]] #Thistle
rectangle "<size:12>Use Case</size>\n**Document SW**\n**architecture**\n<size:10>UC_SW_ARCH</size>" as UC_SW_ARCH [[../use_cases/index.html#UC_SW_ARCH]] #Thistle
rectangle "<size:12>Use Case</size>\n**Document SW**\n**Detail Design**\n**(SW API)**\n<size:10>UC_SW_API</size>" as UC_SW_API [[../use_cases/index.html#UC_SW_API]] #Thistle
rectangle "<size:12>Use Case</size>\n**Document SW**\n**Unit test cases**\n<size:10>UC_UNIT_TEST</size>" as UC_UNIT_TEST [[../use_cases/index.html#UC_UNIT_TEST]] #Thistle
rectangle "<size:12>Use Case</size>\n**Document Test**\n**results of SW**\n**Unit tests**\n<size:10>UC_UNIT_TEST_RESULTS</size>" as UC_UNIT_TEST_RESULTS [[../use_cases/index.html#UC_UNIT_TEST_RESULTS]] #Thistle
rectangle "<size:12>Use Case</size>\n**Document**\n**software**\n**qualification**\n**tests and**\n**results**\n<size:10>UC_SW_QA</size>" as UC_SW_QA [[../use_cases/index.html#UC_SW_QA]] #Thistle

' Connection definition 

FE_SCL_DEF -[#333333]-> TOOL_SCL
FE_SCL_C -[#333333]-> TOOL_SCL
FE_SCL_CPP -[#333333]-> TOOL_SCL
FE_SCL_PY -[#333333]-> TOOL_SCL
FE_SCL_CMT -[#333333]-> TOOL_SCL
FE_SCL_LNK -[#333333]-> TOOL_SCL
FE_SCL_RST_EXTRACTION -[#333333]-> TOOL_SCL
FE_SCL_CLI_ANALYZE -[#333333]-> TOOL_SCL
FE_SCL_CLI_DISCOVER -[#333333]-> TOOL_SCL
FE_SCL_CLI_WRITE -[#333333]-> TOOL_SCL
RE_SCL_CONFIG_IN_SCOPE -[#333333]-> TOOL_SCL
RE_SCL_CONFIG_IN_SCOPE -[#FA8072]-> FAULT_SCL_CMT
RE_SCL_CONFIG_IN_SCOPE -[#FA8072]-> FAULT_SCL_CLI_DISCOVER_1
RE_SCL_WARNINGS_BREAK_BUILD -[#333333]-> TOOL_SCL
RE_SCL_WARNINGS_BREAK_BUILD -[#FA8072]-> FAULT_SCL_1
RE_SCL_WARNINGS_BREAK_BUILD -[#FA8072]-> FAULT_SCL_CLI_ANALYZE_3
FE_SN_READ -[#333333]-> TOOL_SN
FE_SN_CONTENT_RENDER -[#333333]-> TOOL_SN
FE_SN_SET_META -[#333333]-> TOOL_SN
FE_SN_LINK -[#333333]-> TOOL_SN
FE_SN_DOCTREE -[#333333]-> TOOL_SN
FE_SN_JSON -[#333333]-> TOOL_SN
FE_SN_DYN_FUNC -[#333333]-> TOOL_SN
FE_SN_TEMPLATE_PAGE -[#333333]-> TOOL_SN
FE_SN_TEMPLATE_NEED -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DEFINABLE_TYPES -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_CUSTOMIZABLE_OPTIONS -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_CUSTOMIZABLE_LINKS -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_AUTO_ID -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_MANUAL_ID -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_STATUS_ENFORCEMENT -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_TAGGING -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_NEED_PARTS -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_UNIQUE_ID_ENFORCEMENT -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DIRECTIVE_NEEDFLOW -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DIRECTIVE_NEEDPIE -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DIRECTIVE_NEEDBAR -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DIRECTIVE_NEEDIMPORT -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DIRECTIVE_NEEDEXTEND -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_LINKING_DIRECT -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_LINKING_BIDIRECTIONAL -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_LINKING_DEAD_LINK_DETECTION -[#333333]-> TOOL_SN
FE_SN_LINK_CONDITIONS -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_DYNAMIC_CONSTRAINTS -[#333333]-> TOOL_SN
FE_SN_SCHEMA_VALIDATION -[#333333]-> TOOL_SN
FE_SN_TYPED_FIELDS -[#333333]-> TOOL_SN
FE_SN_TYPED_LINK_SCHEMA -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_CONFIG_FILES -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_CONFIG_LAYOUTS -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_EXPORT_JSON -[#333333]-> TOOL_SN
FE_SN_JSON_LINK_CONDITIONS -[#333333]-> TOOL_SN
FE_SPHINX_NEEDS_EXPORT_PERMALINKS -[#333333]-> TOOL_SN
CHECK_SN_NO_DYN -[#FA8072]-> ER_SN_DYN_INVALID
CHECK_SN_NO_DYN -[#FA8072]-> ER_SN_DYN_WRONG
RE_SN_WARNINGS -[#FA8072]-> ER_FILES_IGNORED
RE_SN_WARNINGS -[#FA8072]-> ER_SN_DATA_INVALID
RE_SN_USE_SCHEMA -[#FA8072]-> ER_SN_CONSTRAINT_NOT_CHECKED
RE_SN_USE_SCHEMA -[#FA8072]-> ER_SN_CONSTRAINT_FAIL_SILENTLY
RE_SN_USE_SCHEMA -[#FA8072]-> ER_SN_CONSTRAINT_WRONG_DATA
RE_SN_USE_SCHEMA -[#FA8072]-> ER_SN_CONSTRAINT_INCOMPLETE_DATA
RE_SN_USE_SCHEMA -[#FA8072]-> ER_SN_CONSTRAINT_INVALID_DATA
RE_SN_SCHEMA_VIOLATION -[#FA8072]-> ER_SN_SCHEMA_WRONG_SEVERITY
RE_SN_SCHEMA_VIOLATION -[#FA8072]-> ER_SN_SCHEMA_NOT_REPORTED
RE_SN_TYPE_FIELDS -[#FA8072]-> ER_SN_TYPED_FIELD_TYPE_MISS
RE_SN_TYPE_FIELDS -[#FA8072]-> ER_SN_TYPED_FIELD_ENUM_MISS
RE_SN_TYPE_FIELDS -[#FA8072]-> ER_SN_TYPED_FIELD_RANGE_MISS
RE_SN_TYPE_FIELDS -[#FA8072]-> ER_SN_INVALID_OPTION_VALUE
RE_SN_LINK_CARDINALITY -[#FA8072]-> ER_SN_TYPED_LINK_CARD_MISS
RE_SN_JSON_LINK_COND -[#FA8072]-> ER_SN_JSON_LINK_COND_MISSING
RE_SN_TEMPLATE_IN_SCOPE -[#FA8072]-> ER_SN_TEMPLATE_FILE_NOT_FOUND
RE_SN_TEMPLATE_IN_SCOPE -[#FA8072]-> ER_SN_TEMPLATE_NEED_FILE_NOT_FOUND
RE_SN_TEMPLATE_IN_SCOPE -[#FA8072]-> ER_SN_TEMPLATE_NEED_FILE_SYNTAX
FE_STR_JUNIT_IMPORT -[#333333]-> TOOL_STR
FE_STR_AUTO_SUITES -[#333333]-> TOOL_STR
FE_STR_AUTO_CASES -[#333333]-> TOOL_STR
FE_STR_PROPERTY_LINKS -[#333333]-> TOOL_STR
FE_STR_CUSTOM_TYPES -[#333333]-> TOOL_STR
FE_STR_ENV_IMPORT -[#333333]-> TOOL_STR
FE_STR_DISPLAY -[#333333]-> TOOL_STR
RE_STR_PROP_LINK_TYPES -[#333333]-> TOOL_STR
RE_STR_PROP_LINK_TYPES -[#FA8072]-> ER_STR_PROP_LINK_MISSING
RE_STR_PROP_LINK_TYPES -[#FA8072]-> ER_STR_PROP_TYPE_UNDECLARED
RE_STR_ID_LENGTH -[#333333]-> TOOL_STR
RE_STR_ID_LENGTH -[#FA8072]-> ER_STR_CASE_ID_COLLISION
RE_STR_ID_LENGTH -[#FA8072]-> ER_STR_SUITE_ID_COLLISION
RE_STR_CUSTOM_TYPE -[#333333]-> TOOL_STR
RE_STR_CUSTOM_TYPE -[#FA8072]-> ER_STR_CUSTOM_TYPE_PREFIX_COLLISION
FE_SPHINX_READ -[#333333]-> TOOL_SPHINX
FE_SPHINX_INLINE_EMPHASIS -[#333333]-> TOOL_SPHINX
FE_SPHINX_INLINE_STRONG -[#333333]-> TOOL_SPHINX
FE_SPHINX_INLINE_LITERAL -[#333333]-> TOOL_SPHINX
FE_SPHINX_INLINE_NAMED_HYPERLINK -[#333333]-> TOOL_SPHINX
FE_SPHINX_INLINE_INTERNAL_TARGET -[#333333]-> TOOL_SPHINX
FE_SPHINX_INLINE_ESCAPE -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_SUBSCRIPT -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_SUPERSCRIPT -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_STRONG -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_EMPHASIS -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_LITERAL -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_CODE -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_MATH -[#333333]-> TOOL_SPHINX
FE_SPHINX_STRUCTURE_SECTION_TITLES -[#333333]-> TOOL_SPHINX
FE_SPHINX_STRUCTURE_DOC_TITLE -[#333333]-> TOOL_SPHINX
FE_SPHINX_STRUCTURE_TRANSITIONS -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_TOCTREE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_RUBRIC -[#333333]-> TOOL_SPHINX
FE_SPHINX_LISTS_BULLETED -[#333333]-> TOOL_SPHINX
FE_SPHINX_LISTS_ENUMERATED -[#333333]-> TOOL_SPHINX
FE_SPHINX_LISTS_AUTO_NUMBERED -[#333333]-> TOOL_SPHINX
FE_SPHINX_LISTS_NESTED -[#333333]-> TOOL_SPHINX
FE_SPHINX_LISTS_DEFINITION -[#333333]-> TOOL_SPHINX
FE_SPHINX_LISTS_OPTION -[#333333]-> TOOL_SPHINX
FE_SPHINX_CONTENT_BLOCKQUOTES -[#333333]-> TOOL_SPHINX
FE_SPHINX_CONTENT_LINE_BLOCKS -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_IMAGE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_FIGURE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_TABLE -[#333333]-> TOOL_SPHINX
FE_SPHINX_TABLES_SIMPLE -[#333333]-> TOOL_SPHINX
FE_SPHINX_TABLES_GRID -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_CSV_TABLE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_LIST_TABLE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_CODE_BLOCK -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_LITERALINCLUDE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_MATH -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_CONTENTS -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_INCLUDE -[#333333]-> TOOL_SPHINX
FE_SPHINX_DIRECTIVE_RAW -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_NOTE -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_WARNING -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_HINT -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_TIP -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_IMPORTANT -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_ATTENTION -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_CAUTION -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_ERROR -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_DANGER -[#333333]-> TOOL_SPHINX
FE_SPHINX_ADMONITION_GENERIC -[#333333]-> TOOL_SPHINX
FE_SPHINX_LINK_EXTERNAL -[#333333]-> TOOL_SPHINX
FE_SPHINX_LINK_IMPLICIT -[#333333]-> TOOL_SPHINX
FE_SPHINX_LINK_INTERNAL_LABELS -[#333333]-> TOOL_SPHINX
FE_SPHINX_LINK_EXPLICIT_TARGET -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_REF -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_DOC -[#333333]-> TOOL_SPHINX
FE_SPHINX_ROLE_NUMREF -[#333333]-> TOOL_SPHINX
FE_SPHINX_LINK_FOOTNOTES -[#333333]-> TOOL_SPHINX
FE_SPHINX_LINK_CITATIONS -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_HTML -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_SINGLE_HTML -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_DIR_HTML -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_LATEX -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_EPUB -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_MANPAGE -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_TEXT -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_JSON -[#333333]-> TOOL_SPHINX
FE_SPHINX_OUTPUT_GETTEXT -[#333333]-> TOOL_SPHINX
FE_SPHINX_BUILD_HTML_SEARCH -[#333333]-> TOOL_SPHINX
FE_SPHINX_BUILD_THEMING -[#333333]-> TOOL_SPHINX
FE_SPHINX_BUILD_STATIC_FILES -[#333333]-> TOOL_SPHINX
RE_SPHINX_WARNINGS -[#FA8072]-> ER_FILES_IGNORED
RE_SPHINX_WARNINGS -[#FA8072]-> ER_SPH_WRONG_ENCODING
RE_SPHINX_WARNINGS -[#FA8072]-> ER_SPH_WRONG_ACCESS
RE_SPHINX_CLEAN -[#FA8072]-> ER_SPH_STALE_BUILD
FE_UBC_LINTING <-[thickness=1,#00AA00]- ART_SPHINX_RST
FE_UBC_LINTING -[#333333]-> TOOL_UBC
FE_UBC_FORMAT -[#333333]-> TOOL_UBC
FE_UBC_CACHE -[#333333]-> TOOL_UBC
FE_UBC_BUILD_JSON <-[thickness=1,#00AA00]- ART_SPHINX_RST
FE_UBC_BUILD_JSON -[thickness=1,#0000AA]-> ART_UBC_NEEDS_JSON
FE_UBC_BUILD_JSON -[#333333]-> TOOL_UBC
FE_UBC_VALIDATE_JSON <-[thickness=1,#00AA00]- ART_UBC_NEEDS_JSON
FE_UBC_VALIDATE_JSON -[#333333]-> TOOL_UBC
FE_UBC_SCHEMA_VALIDATE <-[thickness=1,#00AA00]- ART_SPHINX_RST
FE_UBC_SCHEMA_VALIDATE <-[thickness=1,#00AA00]- ART_UBC_NEEDS_JSON
FE_UBC_SCHEMA_VALIDATE -[#333333]-> TOOL_UBC
FE_UBC_DIFF_GIT -[#333333]-> TOOL_UBC
FE_UBC_AGENT_SKILL -[thickness=1,#0000AA]-> ART_UBC_NEEDS_JSON
FE_UBC_AGENT_SKILL -[#333333]-> TOOL_UBC
FE_UBC_JSON_CROSSCHECK <-[thickness=1,#00AA00]- ART_SPHINX_RST
FE_UBC_JSON_CROSSCHECK <-[thickness=1,#00AA00]- ART_UBC_NEEDS_JSON
FE_UBC_JSON_CROSSCHECK -[#333333]-> TOOL_UBC
CHECK_UBC_NO_DYN -[#FA8072]-> ER_UBC_JSON_INCOMPLETE
CHECK_UBC_NO_LIST2NEEDS -[#FA8072]-> ER_UBC_JSON_INCOMPLETE
CHECK_UBC_RST_WORKSPACE -[#FA8072]-> ER_UBC_JSON_INCOMPLETE
RE_UBC_CROSSCHECK_CI -[#FA8072]-> ER_UBC_CROSSCHECK_FALSE_NEG
RE_UBC_FORMAT_CHECK_ONLY -[#FA8072]-> ER_UBC_FORMAT_ERRORS
RE_UBC_VERSION_PIN -[#FA8072]-> ER_UBC_SCHEMA_DIVERGE
RE_UBC_SCHEMA_SEVERITY_ERROR -[#FA8072]-> ER_UBC_SCHEMA_EXIT_ZERO
RE_UBC_DIFF_MIN_DEPTH -[#FA8072]-> ER_UBC_DIFF_DEPTH_CUT
RE_UBC_DIFF_DIRECTION_BOTH -[#FA8072]-> ER_UBC_DIFF_DIR_WRONG
UC_SW_REQ -[#Gold]-> FE_SPHINX_READ
UC_SW_REQ -[#Gold]-> FE_SN_READ
UC_SW_REQ -[#Gold]-> FE_SN_CONTENT_RENDER
UC_SW_REQ -[#Gold]-> FE_SN_SET_META
UC_SW_REQ -[#Gold]-> FE_SN_LINK
UC_SW_REQ -[#333333]-> TOOL_SPHINX
UC_SW_REQ -[#333333]-> TOOL_SN
UC_SW_REQ -[#333333]-> TOOL_UBC
UC_SW_ARCH -[#Gold]-> FE_SPHINX_READ
UC_SW_ARCH -[#Gold]-> FE_SN_READ
UC_SW_ARCH -[#Gold]-> FE_SN_SET_META
UC_SW_ARCH -[#Gold]-> FE_SN_LINK
UC_SW_ARCH -[#Gold]-> FE_SN_CONTENT_RENDER
UC_SW_ARCH -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDFLOW
UC_SW_ARCH -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE
UC_SW_ARCH -[#333333]-> TOOL_SPHINX
UC_SW_ARCH -[#333333]-> TOOL_SN
UC_SW_API -[#Gold]-> FE_SPHINX_READ
UC_SW_API -[#Gold]-> FE_SN_READ
UC_SW_API -[#Gold]-> FE_SN_SET_META
UC_SW_API -[#Gold]-> FE_SN_LINK
UC_SW_API -[#Gold]-> FE_SN_CONTENT_RENDER
UC_SW_API -[#Gold]-> FE_SCL_DEF
UC_SW_API -[#Gold]-> FE_SCL_LNK
UC_SW_API -[#Gold]-> FE_SCL_C
UC_SW_API -[#Gold]-> FE_SCL_CPP
UC_SW_API -[#Gold]-> FE_SCL_PY
UC_SW_API -[#333333]-> TOOL_SPHINX
UC_SW_API -[#333333]-> TOOL_SN
UC_UNIT_TEST -[#Gold]-> FE_SPHINX_READ
UC_UNIT_TEST -[#Gold]-> FE_SN_READ
UC_UNIT_TEST -[#Gold]-> FE_SN_SET_META
UC_UNIT_TEST -[#Gold]-> FE_SN_LINK
UC_UNIT_TEST -[#Gold]-> FE_SN_CONTENT_RENDER
UC_UNIT_TEST -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE
UC_UNIT_TEST -[#Gold]-> FE_SCL_LNK
UC_UNIT_TEST -[#333333]-> TOOL_SPHINX
UC_UNIT_TEST -[#333333]-> TOOL_SN
UC_UNIT_TEST_RESULTS -[#Gold]-> FE_SPHINX_READ
UC_UNIT_TEST_RESULTS -[#Gold]-> FE_SN_READ
UC_UNIT_TEST_RESULTS -[#Gold]-> FE_SN_LINK
UC_UNIT_TEST_RESULTS -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDPIE
UC_UNIT_TEST_RESULTS -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDBAR
UC_UNIT_TEST_RESULTS -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE
UC_UNIT_TEST_RESULTS -[#333333]-> TOOL_SPHINX
UC_UNIT_TEST_RESULTS -[#333333]-> TOOL_SN
UC_SW_QA -[#Gold]-> FE_SPHINX_READ
UC_SW_QA -[#Gold]-> FE_SN_READ
UC_SW_QA -[#Gold]-> FE_SN_SET_META
UC_SW_QA -[#Gold]-> FE_SN_LINK
UC_SW_QA -[#Gold]-> FE_SN_CONTENT_RENDER
UC_SW_QA -[#Gold]-> FE_SN_SCHEMA_VALIDATION
UC_SW_QA -[#Gold]-> FE_UBC_SCHEMA_VALIDATE
UC_SW_QA -[#Gold]-> FE_UBC_VALIDATE_JSON
UC_SW_QA -[#Gold]-> FE_SPHINX_NEEDS_DIRECTIVE_NEEDTABLE
UC_SW_QA -[#333333]-> TOOL_SPHINX
UC_SW_QA -[#333333]-> TOOL_SN

@enduml

Piechart

By Tool

../_images/need_pie_079bc.svg

By Type

../_images/need_pie_041f1.svg